什么 setup.py 命令将更新站点包中的源代码?
What setup.py command will update the source in site-packages?
我有运行
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
而不是 创建 - 因此 none 的源代码被复制。在此本地安装过程中我缺少/不理解什么?
更新当我有运行
pip3 install infixpy
还有一个目录 infix
,源代码包含在该目录中。 运行 setup.py install
的 local
或 devel
模式不会导致代码更新,而且 - 至关重要的是 - stacktraces 来自 运行ning 任何 python 代码(即使在全新的 ipython
repl 中)也只显示较旧的 / pip3
安装代码。特别是文件 __init__.py
所以我的观察是源文件 :
/usr/local/lib/python3.7/site-packages/infixpy/__init__.py
准确反映了 python
可执行文件所使用的内容。 @phd 提到源代码已经包含在 egg
中。所以我不明白 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```
这有点令人惊讶,因为理论上您的项目有 3 个版本可以导入(0.0.3
、0.0.4
和 develop/可编辑)。在这种情况下,我不确定 Python 解释器使用了哪一个。您可能想要 运行 pip uninstall infixpy
几次以重新开始并减轻这些不确定性。然后,您可以试验上述命令并查看它们如何影响 site-packages
的内容以及检查 pip show infixpy
.
的结果
我有运行
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
而不是 创建 - 因此 none 的源代码被复制。在此本地安装过程中我缺少/不理解什么?
更新当我有运行
pip3 install infixpy
还有一个目录 infix
,源代码包含在该目录中。 运行 setup.py install
的 local
或 devel
模式不会导致代码更新,而且 - 至关重要的是 - stacktraces 来自 运行ning 任何 python 代码(即使在全新的 ipython
repl 中)也只显示较旧的 / pip3
安装代码。特别是文件 __init__.py
所以我的观察是源文件 :
/usr/local/lib/python3.7/site-packages/infixpy/__init__.py
准确反映了 python
可执行文件所使用的内容。 @phd 提到源代码已经包含在 egg
中。所以我不明白 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```
这有点令人惊讶,因为理论上您的项目有 3 个版本可以导入(0.0.3
、0.0.4
和 develop/可编辑)。在这种情况下,我不确定 Python 解释器使用了哪一个。您可能想要 运行 pip uninstall infixpy
几次以重新开始并减轻这些不确定性。然后,您可以试验上述命令并查看它们如何影响 site-packages
的内容以及检查 pip show infixpy
.