用于开发的本地安装Python包的最佳方法
作为一个刚接触Python游戏开发的新手,我发现自己对如何在程序开发的同时保持它在实时环境中运行这方面的知识了解得不够。
像gpodder这样的程序可以直接从源代码运行,这非常方便,但其他一些程序则需要“安装”才能运行。
很多程序会附带一个setup.py文件,里面有说明说要用“python ./setup.py install”这个命令以管理员身份运行,这样就会把一些东西放到你的文件系统里。还有一些安装命令,比如“develop”,看起来也很符合我的需求。所以我试了试:
export PYTHONPATH=/home/alex/python
python ./setup.py develop --install-dir=/home/alex/python
这个命令下载了一堆东西到本地,并且似乎神奇地确保我正在修改的应用程序仍然是从源代码目录运行的。所以我想问的是,这是否是开发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
4 个回答
Python打包用户指南是一个权威的资源,旨在教你如何使用当前的工具来打包、发布和安装Python程序。它建议使用pip来以“开发模式”进行安装:
pip install -e <path>
所以在你包的根目录下,你可以简单地
pip install -e .
可以查看从本地源树安装的内容。
Virtualenv 让你可以在完全独立和隔离的 Python 环境中工作。它可以让你轻松创建多个环境,这些环境可以安装不同的 Python 包,或者同一个包的不同版本。使用 Virtualenv,你还可以方便地在不同的环境之间切换。
从 2012 年开始,Python 中管理包的首选工具是 pip,而不是 setuptools。Pip 能够处理依赖关系,并且可以在全局或虚拟环境中安装和卸载包。实际上,pip 在使用 virtualenv 时是自带的。
Python 3
安装:
你可以去这个链接:http://pypi.python.org/pypi/virtualenv
来设置一个本地的虚拟环境,用来管理你的库文件,另外:
还可以访问这个链接:http://pypi.python.org/pypi/setuptools
也就是“easy_install”,用来安装新东西。