鱼C论坛

 找回密码
 立即注册
查看: 836|回复: 11

[已解决]关于包的问题

[复制链接]
发表于 2017-11-22 22:02:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
为了实验Python 包,设置了D:\Programs\test 目录。并且创建了一个__init__文件。在这个目录下加入了一个模块p1.py,
#p1.py
def c2f(cel):
    fah = cel *1.8+32
    return fah

def f2c(fah):
    cel = (fah-32)/1.8
    return cel
用sys.path.append('D:\\Programs\\test') 增加目录
['C:\\Users\\Administrator\\Desktop', 'D:\\Programs\\Python\\Python36\\python36.zip', 'D:\\Programs\\Python\\Python36\\DLLs', 'D:\\Programs\\Python\\Python36\\lib', 'D:\\Programs\\Python\\Python36', 'D:\\Programs\\Python\\Python36\\lib\\site-packages', 'C:\\Users\\Administrator\\Desktop', 'D:\\Programs\\test', 'D:\\Programs']

#调用这个模块,
import test.p1 as tc
结果出现错误:
Traceback (most recent call last):
  File "<pyshell#17>", line 1, in <module>
    import test.p1 as tc
ModuleNotFoundError: No module named 'test.p1'
最佳答案
2017-11-22 22:37:39
科尔沃 发表于 2017-11-22 22:31
我也增加了 这个目录,D:\\Programs,但还是报错

我估计可能是你的默认路径下也有个叫做test的包,而里面没有p1.py这个文件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-11-22 22:13:21 | 显示全部楼层
请问你 你另一个文件在什么位置????
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-22 22:15:40 From FishC Mobile | 显示全部楼层
本帖最后由 BngThea 于 2017-11-22 22:25 编辑

你加的路径不对,不用加到test这一层,因为test中有init文件,此时它已经是一个包,而不是文件夹
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-22 22:24:06 | 显示全部楼层
ba21 发表于 2017-11-22 22:13
请问你 你另一个文件在什么位置????

我没有创建另一个文件,就是在shell上直接import 这个包和模块,结果报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-22 22:26:49 | 显示全部楼层
BngThea 发表于 2017-11-22 22:15
试试导入其中一个函数

>>> import test
>>> import test.p1
Traceback (most recent call last):
  File "<pyshell#14>", line 1, in <module>
    import test.p1
ModuleNotFoundError: No module named 'test.p1'
可以import test  但import test.p1却报错, 可是存在 ...\test\p1.py文件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-22 22:30:08 From FishC Mobile | 显示全部楼层
科尔沃 发表于 2017-11-22 22:26
>>> import test
>>> import test.p1
Traceback (most recent call last):

我改了回答,你再看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-22 22:31:43 | 显示全部楼层
BngThea 发表于 2017-11-22 22:15
你加的路径不对,不用加到test这一层,因为test中有init文件,此时它已经是一个包,而不是文件夹

我也增加了 这个目录,D:\\Programs,但还是报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-22 22:35:45 | 显示全部楼层
科尔沃 发表于 2017-11-22 22:24
我没有创建另一个文件,就是在shell上直接import 这个包和模块,结果报错


为了实验Python 包,设置了D:\Programs\test 目录。并且创建了一个__init__文件。在这个目录下加入了一个模块p1.py,

然后你在shell里面来引用这个,你觉得可能引用的到吗?D:\Programs\test 或 D:\Programs 这目录跟python有嘛子关系 咯? 它既不是python目录,也不是python默认模板所在路劲。

你要不就直接在 D:\Programs 建个.py文件用你的方法来引用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-22 22:37:39 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
科尔沃 发表于 2017-11-22 22:31
我也增加了 这个目录,D:\\Programs,但还是报错

我估计可能是你的默认路径下也有个叫做test的包,而里面没有p1.py这个文件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-22 22:47:00 | 显示全部楼层
ba21 发表于 2017-11-22 22:35
为了实验Python 包,设置了D:\Programs\test 目录。并且创建了一个__init__文件。在这个目录下加入了一 ...

1.我用sys.path.append('D:\\Programs')增加了目录,但依然找不到路径

2在D:\Program\Python 下创建test 目录,并且用sys.path.append ('D:\\Program\\Python' ), 然后import test.p1
>>> import test.p1
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    import test.p1
ModuleNotFoundError: No module named 'test.p1'

但是 import test  不报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-22 22:54:24 | 显示全部楼层
BngThea 发表于 2017-11-22 22:37
我估计可能是你的默认路径下也有个叫做test的包,而里面没有p1.py这个文件

的确是这个原因,解决了,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-22 22:55:41 From FishC Mobile | 显示全部楼层
科尔沃 发表于 2017-11-22 22:54
的确是这个原因,解决了,谢谢!

给最佳哟
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-11 22:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表