【发布时间】:2010-07-19 13:33:29
【问题描述】:
作为 python 游戏的新手,我似乎错过了一些关于如何在程序上进行开发但又将其保留在实际环境中的知识。
gpodder 之类的程序可以直接从源代码签出中运行,这非常方便,但其他程序希望“安装”后运行。
许多程序都与 setup.py 一起分发,其中包含以 root 身份运行“python ./setup.py install”的指令,这会将东西放在文件系统中的某个位置。甚至还有像“develop”这样的安装命令,似乎可以满足我的要求。所以我尝试了:
export PYTHONPATH=/home/alex/python
python ./setup.py develop --install-dir=/home/alex/python
它在本地下载了一堆东西,似乎神奇地确保了我正在破解的应用程序仍然在 src 树之外运行。所以我想我的迂回问题是这是开发python代码的正确方法吗?像 easy_install 和 pip 这样的东西是如何影响到这个的?
所以我尝试了以下方法:
python /usr/share/pyshared/virtualenv.py /home/alex/src/goobook
cd /home/alex/src/goobook/googbook.git
/home/alex/src/goobook/bin/python ./setup.py develop
最后把有问题的程序链接到我的~/bin
cd /home/alex/src/goobook
linkbin.pl bin/goobook
但是调用会引发大量额外的喋喋不休,这似乎暗示它是错误的:
17:17 alex@socrates/i686 [goobook] >goobook --help
/home/alex/bin/goobook:5: UserWarning: Module pkg_resources was already imported from /home/alex/src/goobook/lib/python2.5/site-packages/setuptools-0.6c8-py2.5.egg/pkg_resources.py, but /home/alex/src/goobook/lib/python2.5/site-packages/distribute-0.6.10-py2.5.egg is being added to sys.path
from pkg_resources import load_entry_point
/home/alex/bin/goobook:5: UserWarning: Module site was already imported from /home/alex/src/goobook/lib/python2.5/site.pyc, but /home/alex/src/goobook/lib/python2.5/site-packages/distribute-0.6.10-py2.5.egg is being added to sys.path
from pkg_resources import load_entry_point
【问题讨论】:
-
这些是警告,而不是错误。最有可能的事情会正常工作。有趣的是,您的 virtualenv 中同时安装了 setuptools 和 分发(这就是导致警告的原因);分发是 setuptools 的替代品。
-
啊,这可能是包的一个功能,如果玩的话。它似乎下载分发作为设置的一部分。它应该只做其中一个吗? gitorious.org/goobook/mainline/blobs/master/setup.py
-
看来问题已经随着 Debian Squeeze 的更新而消失了。
标签: python installation