在本地安装python包以进行开发的最佳方法

sts*_*uad 18 python installation

作为python游戏的新手,我似乎错过了一些关于如何开发程序的知识,但也将它保存在你的实时环境中.

像gpodder这样的程序可以直接从源签出运行,这非常方便,但是其他人想要"安装"运行.

许多程序都与一个setup.py一起发布,其中包含以root身份运行"python ./setup.py install"的指令,它将把东西放在你文件系统的某个地方.甚至还有像"develop"这样的安装命令,它们似乎能够实现我想要的目标.所以我尝试过:

export PYTHONPATH=/home/alex/python
python ./setup.py develop --install-dir=/home/alex/python
Run Code Online (Sandbox Code Playgroud)

在本地下载了一堆东西,似乎神奇地确保我正在攻击的应用程序仍然在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
Run Code Online (Sandbox Code Playgroud)

最后将有问题的程序链接到我的〜/ bin

 cd /home/alex/src/goobook
 linkbin.pl bin/goobook
Run Code Online (Sandbox Code Playgroud)

然而,调用会引发额外的喋喋不休,这似乎暗示它是错误的:


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

eru*_*orm 11

安装:

http://pypi.python.org/pypi/virtualenv

为您的库设置本地化虚拟环境,并:

http://pypi.python.org/pypi/setuptools

即"easy_install"来安装新东西.

  • virtualenv在virtualenv中安装setuptools(或分发,这是它的新替代品); 作为第二步,您不需要显式安装setuptools.如果您这样做,那可能是您看到的那些UserWarning的原因. (2认同)

Rod*_*gue 5

Virtualenv允许您在完全独立且孤立的Python环境中工作.它可以让您轻松创建安装了不同Python软件包的多个环境或同一软件包的不同版本.Virtualenv还可让您轻松切换不同的环境.

截至2012年,Python中用于包管理的事实上首选工具是pip而不是setuptools.Pip能够处理依赖关系并在全局或虚拟环境中安装/卸载.Pip甚至与virtualenv开箱即用.

Python 3

另外值得一提的是,虚拟环境正变得Python本身的一部分的事实3.3版,与实施PEP 405.