首页 新闻 会员 周边 捐助

python如何导入自定义模块

0
[已解决问题] 解决于 2017-07-14 19:13

自定义模块:

def make_pizza(size, *toppings):
    """概述要制作的比萨"""
    print("\nMaking a "+str(size) +
          "-inch pizza with the following toppings:")
    for topping in toppings:
        print("- "+topping)

 

测试代码:

import pizza
pizza.make_pizza(16, 'pepperoni')
pizza.make_pizza(12, 'mushroom', 'green peppers', 'extra cheese')

两个文件在同一个目录下,但是测试时报错No module named pizza

何甜甜在吗的主页 何甜甜在吗 | 菜鸟二级 | 园豆:357
提问于:2017-07-14 16:48
< >
分享
最佳答案
0

import os
import sys
parent_dir_name = os.path.dirname(os.path.realpath(__file__))
sys.path.append(parent_dir_name )
import pizza 
pizza.make_pizza(16, 'pepperoni') 
pizza.make_pizza(12, 'mushroom', 'green peppers', 'extra cheese')

 

 你打印一下parent_dir_name 这个的路径,如果是和你导入包的路径就是没有问题了
当前目录下需要加 __init__.py 空文件就行
奖励园豆:5
悟行 | 专家六级 |园豆:12559 | 2017-07-14 17:56

parent_dir_name打印出来为空。当前目录上有__init__.py 空文件

何甜甜在吗 | 园豆:357 (菜鸟二级) | 2017-07-14 18:10
其他回答(4)
0

from pizza import make_pizza呢?

北方姆Q | 园豆:1120 (小虾三级) | 2017-07-14 17:31

还是不行

支持(0) 反对(0) 何甜甜在吗 | 园豆:357 (菜鸟二级) | 2017-07-14 17:34
0

这样是没有问题的。你的那个模块定义所在的文件名称必须是要以".py"、".pyo"、".pyc"、".pyd"、".so"、".dll"结尾才可以。

你看我的是没有问题的,我的是以.py结尾的文件,当然也必须是在同一个目录下,而且不能有语法错误,就是要注释掉你那个函数的第一行中文语句。

fcyh | 园豆:568 (小虾三级) | 2017-07-14 17:34

我去点那个中文也还是不行

pizza.py和test_module.py在同一个目录下啊

支持(0) 反对(0) 何甜甜在吗 | 园豆:357 (菜鸟二级) | 2017-07-14 18:05

@甜甜咿呀咿呀哟: 你可以按照我的写法再试一下。我这边是没有问题的

支持(0) 反对(0) fcyh | 园豆:568 (小虾三级) | 2017-07-14 18:20
0

测试了下是没有问题的,请检查模块名写的对不对

兰冰点点 | 园豆:401 (菜鸟二级) | 2017-07-14 18:01
0

自己弄了python package 需要这样写:from com.cqupt.test import pizza

谢谢大家的解答

何甜甜在吗 | 园豆:357 (菜鸟二级) | 2017-07-14 19:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册