作为python游戏的新手,我似乎错过了一些关于如何在程序上进行开发,但又如何将其保留在您的实时环境中的知识。
像gpodder这样的程序可以直接从源码签出中运行,这真的很方便,但是其他程序想要“安装”才能运行。
许多程序都随setup.py一起分发,其中包含了以根用户身份运行“python./setup.py install”的指令,这将把内容放在文件系统中的某个地方。甚至还有像“开发”这样的安装命令,它们似乎包含了我想要的东西。所以我试着:
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发布于 2010-07-19 21:45:32
安装:
http://pypi.python.org/pypi/virtualenv
要为库设置本地化虚拟环境,请执行以下操作:
http://pypi.python.org/pypi/setuptools
即"easy_install“来安装新的东西。
发布于 2012-10-02 18:56:09
Virtualenv允许您在完全独立和隔离的Python环境中工作。它可以让你轻松地创建多个环境,这些环境安装了不同的Python包,或者同一个包的不同版本。Virtualenv还可以让您轻松地在不同环境之间切换。
截至2012年,Python中包管理的事实首选工具是pip,而不是setuptools。Pip能够处理依赖关系,并能够全局或在虚拟环境中安装/卸载。Pip甚至是开箱即用的virtualenv。
Python 3
同样值得一提的是,随着PEP 405的实现,虚拟环境正在成为release 3.3中Python本身的一部分。
发布于 2016-04-13 06:33:45
Python Packaging User Guide“旨在成为如何使用当前工具打包、发布和安装Python发行版的权威资源”,它建议使用pip在“开发模式”下安装:
pip install -e <path>因此,在软件包的根目录中,您可以简单地
pip install -e .参见installing from a local source tree。
https://stackoverflow.com/questions/3281495
复制相似问题