你在哪里可以强制pip安装为"平"而不是"蛋".
对我来说似乎是随机的.有时它会像鸡蛋一样安装,有时候会变平.
pip help install仅显示--egg强制鸡蛋安装的选项.但我找不到一个--flat选择.
这些包来自一个自己的pypiserver,并上传如下:
python setup.py sdist upload -r internal
安装期间输出点数:
Best match: foo-client 2015.2
Downloading https://installserver:40443/pypi/packages/foo_client-2015.2.tar.gz
Processing foo_client-2015.2.tar.gz
Writing /home/bar_eins_daad/tmp/easy_install-z20B7b/foo_client-2015.2/setup.cfg
Running foo_client-2015.2/setup.py -q bdist_egg --dist-dir /home/bar_eins_daad/tmp/easy_install-z20B7b/foo_client-2015.2/egg-dist-tmp-GO1snX
Run Code Online (Sandbox Code Playgroud)
我不知道为什么bdist_egg在这里使用.它是否强制创建鸡蛋安装?
在setup.py不使用setuptools不distutils.
我们的pypiserver上的包看起来像这样:
tar -tzf packages/foo_client-2015.3.tar.gz
Run Code Online (Sandbox Code Playgroud)
内容:
foo_client-2015.2/
foo_client-2015.2/foo_client.egg-info/
foo_client-2015.2/foo_client.egg-info/SOURCES.txt
foo_client-2015.2/foo_client.egg-info/top_level.txt
foo_client-2015.2/foo_client.egg-info/dependency_links.txt
foo_client-2015.2/foo_client.egg-info/PKG-INFO
foo_client-2015.2/setup.cfg
foo_client-2015.2/PKG-INFO
foo_client-2015.2/foo_client/
foo_client-2015.2/foo_client/models.py
...
Run Code Online (Sandbox Code Playgroud)
背景
如果安装了压缩蛋,pip似乎有时会多次安装包.
更新
我发现在哪种情况下包被安装为egg:如果python setup.py develop它是通过安装的(它是一个install_requires依赖项).
如果我使用pip install foo_client它将安装平(我想要的方式).
UPDATE2
非常丑陋的部分:如果蛋安装,旧版本安装平坦不会被删除.
版本:点1.5.6
这并没有解决为什么我有时会得到拉链蛋,有时候没有.但它有帮助.
你可以用它~/.distutils.cfg来避免安装拉链蛋:
[easy_install]
zip_ok = False
Run Code Online (Sandbox Code Playgroud)
如果您是该包的作者,则可以zip_safe=False在 中使用该标志setup.py。
setup(
name = "HelloWorld",
...
zip_safe = False,
)
Run Code Online (Sandbox Code Playgroud)
如果您是想要改进该软件包的用户pip install -e foo_package,可以通过安装它。该选项-e或--editable以可编辑模式(即 setuptools“开发模式”)安装项目,而不是压缩。site-packages它创建从源到并编译的链接.../bin脚本,但它不会将源复制到“站点包”中。这些软件包无法自动更新。这就是为什么它不作为安装软件包的常用方式,而仅适用于那些需要定制或修复的软件包的主要原因。
编辑:Django是一个典型的应用程序所需的框架zip_safe=False,因为它们不是纯 Python,但它们还包含带有 html、css、i18n 资源等的模板。您的问题与 Django 有关吗?
| 归档时间: |
|
| 查看次数: |
9648 次 |
| 最近记录: |