【问题标题】:Change where setuptools downloads .egg files更改 setuptools 下载 .egg 文件的位置
【发布时间】:2014-06-13 10:20:08
【问题描述】:

我是 Python 新手,但是当我使用 setuptools 为项目安装 .eggs 时,它会将它们全部放在当前工作目录(项目的顶级目录)中。这会使目录乱七八糟,并且很难将它们与项目的其余部分分开移动。

有没有办法让 .eggs 下载到子目录?

编辑 | @Kos 建议使用 virtualenv。奇怪的是,这似乎仍然在虚拟环境之外下载 .egg 目录。

(.virtualenv)default@232f7f34a1dd:/projects/python/tmp/sql$ which python
/projects/python/tmp/sql/.virtualenv/bin/python
running test)default@232f7f34a1dd:/projects/python/tmp/sql$ python setup.py test
Searching for nose
Reading https://pypi.python.org/simple/nose/
Best match: nose 1.3.3
Downloading https://pypi.python.org/packages/source/n/nose/nose-1.3.3.tar.gz#md5=42776061bf5206670cb819176dc78654
Processing nose-1.3.3.tar.gz
Writing /tmp/easy_install-0eX3mf/nose-1.3.3/setup.cfg
Running nose-1.3.3/setup.py -q bdist_egg --dist-dir /tmp/easy_install-0eX3mf/nose-1.3.3/egg-dist-tmp-MJ1xDk
no previously-included directories found matching 'doc/.build'

Installed /projects/python/tmp/sql/nose-1.3.3-py2.7.egg
(.virtualenv)default@232f7f34a1dd:/projects/python/tmp/sql$

注意“已安装 /projects/python/tmp/sql/nose-1.3.3-py2.7.egg”?那应该在“Installed /projects/python/tmp/sql/.virtualenv/.....”下面的某个地方。

【问题讨论】:

    标签: python setuptools pypi


    【解决方案1】:

    您通常会在您选择的任何地方创建virtualenv 并在那里安装软件包。

    【讨论】:

    • 谢谢!我听说过 virtualenv,但不知道它是做什么的。
    • 嗯。我通过pip安装了virtualenv,然后在我的项目下创建了一个.virtualenv目录。我将 .virtualenv/bin 放在我的 $PATH 上并验证 which python 显示 .virtualenv/bin/python。但是当我运行python setup.py test 时,“nose-1.3.3-py2.7.egg”会下载到我当前的工作目录(项目目录),而不是 virtualenv。
    • 您是否先激活了您的 virtualenv?
    • 我确实做到了:) 在我的问题中查看我的编辑(提示反映激活)。我刚刚也将 'docker-py' 添加到 install_requires 并且已经将 4-5 个鸡蛋下载到我当前的目录中。似乎 setuptools 忽略了 virtualenv 什么的。还是我缺少一些必要的环境变量?
    • 查看 setuptools 的源代码,它只是将它们下载到当前目录。这是硬编码的。 github.com/jaraco/setuptools/blob/…
    猜你喜欢
    • 2017-08-02
    • 2012-02-11
    • 2018-01-11
    • 1970-01-01
    • 2011-05-29
    • 2012-08-14
    • 1970-01-01
    • 2011-08-11
    相关资源
    最近更新 更多