为什么在添加新脚本/子模块等后setup.py develop
再次运行?
例如,我这样做:
pyvenv venv
. venv/bin/activate
现在,创建这些文件:
/
| setup.py
| testpkg
| | __init__.py
| | foo.py
| |__
|__
(setup.py 很简单,foo.py 包含一个函数)然后
python setup.py develop
现在,如果你启动python,你可以导入testpkg.foo
。
但是现在,添加 bar.py:
/
| setup.py
| testpkg
| | __init__.py
| | foo.py
| | bar.py <---
| |__
|__
您无法导入testpkg.bar
除非你再次运行
python setup.py develop
为什么?(为什么它不起作用,如果它是预期的行为,为什么选择这种行为?
注释(和编辑)
在我的计算机上,运行 python setup.py develop
后,我注意到链接指向 build/lib/[...]。鸡蛋信息
在鸡蛋信息中,我看到来源指向此构建/库。 这里的文件不是链接,那么它应该如何工作?
检查标志use_2to3是否设置。然后,正如文档所说:
如果您启用了 use_2to3 标志,那么当然是 .egg-link 在 Python 3 下运行时不会直接链接到您的源代码, 因为该源代码是为 Python 2 制作的,而不是在 蟒蛇 3.相反,开发 setup.py 将在下面构建Python 3代码。 构建目录,并链接到那里。这意味着在做完代码之后 在这些更改之前,您必须运行 setup.py 构建的更改 由您的 Python 3 安装拾取。
- https://pythonhosted.org/setuptools/setuptools.html