我已经运行
python setup.py sdist --formats=gztar,zip bdist_wheel
然后
python setup.py install
结果是egg
文件在site-packages
目录中创建,但而不是<package-name>/<package-source files>
:
$ls /usr/local/lib/python3.7/site-packages/infix*
/usr/local/lib/python3.7/site-packages/infixpy-0.0.3-py3.7.egg
/usr/local/lib/python3.7/site-packages/infixpy.egg-link
/usr/local/lib/python3.7/site-packages/infixpy-0.0.4-py3.7.egg
请注意,目录infix
不是创建的,因此没有复制任何源代码。在本地安装过程中,我缺少什么/不了解什么?
更新当我运行时
pip3 install infixpy
存在一个附加目录CCD_ 5并且源代码被包括在该目录中。运行setup.py install
的local
或devel
模式并没有导致该代码被更新,而且至关重要的是,运行任何python代码(即使是在全新的ipython
repl中(的堆栈跟踪只显示较旧的/pip3
安装代码。特别是文件__init__.py
,所以我观察到源文件:
/usr/local/lib/python3.7/site-packages/infixpy/__init__.py
是python
可执行文件所使用内容的准确反映@phd提到源代码已经包括在CCD_ 13中。因此,我不理解egg
中的源代码和该子目录中的源码之间的关系——在我最近的一次运行中,该子目录完全缺失。
以下命令产生的结果略有不同:
pip install .
:作为未压缩的包目录和XXX.dist-info
目录安装pip install infixpy
:与以前相同,但从(远程(索引安装(根据默认PyPI(,而不是从本地目录安装python setup.py install
:安装为压缩文件XXX.egg
pip install --editable .
或python setup.py develop
:未安装,但链接为XXX.egg-link
文件
因此,根据输入的命令,site-packages
的内容不同。
现在这就是你所说的:
$ls /usr/local/lib/python3.7/site-packages/infix* /usr/local/lib/python3.7/site-packages/infixpy-0.0.3-py3.7.egg /usr/local/lib/python3.7/site-packages/infixpy.egg-link /usr/local/lib/python3.7/site-packages/infixpy-0.0.4-py3.7.egg```
这有点令人惊讶,因为理论上您的项目有三个版本是可导入的(0.0.3
、0.0.4
和开发/可编辑(。我不确定Python解释器在这种情况下使用了哪一个。您可能需要运行pip uninstall infixpy
几次,以重新开始并缓解这些不确定性。然后,您可以对上面提到的命令进行实验,看看它们如何影响site-packages
的内容,同时检查pip show infixpy
的结果。