Python3 import 疑惑如何解决?
win 操作系统
目录结构如下: project |--modu |--init.py |--moduA.py |--main |--main.py
main.py 想引用 moduA,现在网上解决方法: a.Python 安装目录下的\Lib\site-packages 文件夹中建立一个.pth 文件,内容为自己写的库路径 b.动态的添加库路径。在程序运行过程中修改 sys.path 的值,添加自己的库路径
疑惑: a.无论是 a 还是 b 解决的都是自己本机上引包的问题。如果把写的项目发个别人,别人岂不是还要再配置一遍? b.python 为什么不能以项目目录为根节点,根据根节点来查找自定义模块 求大神指教
Python3 import 疑惑如何解决?
难道不是 init.py 文件吗
我无法理解你的问题。
https://www.kawabangga.com/posts/2340
不过最好的解决办法还是写个 setup.py 打包进去,然后用 python setup.py develop 关联一下。一次打包,到处运行。
b 可以解决你的问题, 只要你的目录层级不变, 发给别人也是可以直接用的.
#3 当然最好还是按照#2 说的, 打个包.
python 是以你执行的文件为根节点的,引用的模块或包不能超过根节点。写 django 的话,应该就了解这点,我们启动 django 都是去执行根目录下的 manage.py 。 所以项目内的文件可以相互引用。
根节点下面的文件树可以看做是一个项目,他们之间可以通过从根节点路径出发的绝对路径来引用,这也是 Python 推荐的写法。
理解引用的原理以后,就很简单了
翻译过一篇关于引用的文章。可以参考一下: http://vimiix.com/post/2017/12/29/import-error-relative-no-parent
我之前也困扰过一段时间,理解一句话就可以了:“ Python 是根据执行的脚本文件所在的路径为根节点”

