哪个setup.py命令将更新站点包中的源代码



我已经运行

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 installlocaldevel模式并没有导致该代码被更新,而且至关重要的是,运行任何python代码(即使是在全新的ipythonrepl中(的堆栈跟踪只显示较旧的/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.30.0.4开发/可编辑(。我不确定Python解释器在这种情况下使用了哪一个。您可能需要运行pip uninstall infixpy几次,以重新开始并缓解这些不确定性。然后,您可以对上面提到的命令进行实验,看看它们如何影响site-packages的内容,同时检查pip show infixpy的结果。

最新更新