在本地为developmen安装python包的最佳方法

2024-09-24 22:25:32 发布

您现在位置:Python中文网/ 问答频道 /正文

作为python游戏的新手,我似乎错过了一些关于如何在程序上进行开发的知识,同时也将其保留在您的实时环境中。

像gpodder这样的程序可以直接从源代码签出运行,这是非常方便的,但是其他人希望被“安装”来运行。

很多程序都是用setup.py分发的,其中包含以根用户身份运行“python./setup.py install”的指令,这将把东西放在文件系统中的某个位置。甚至还有像“development”这样的安装命令,它们似乎保证了我想要的东西。所以我试着:

export PYTHONPATH=/home/alex/python
python ./setup.py develop --install-dir=/home/alex/python

它在本地下载了很多东西,似乎神奇地确保了我正在破解的应用程序仍然在src树中运行。所以我想我的迂回问题是这是开发python代码的正确方法吗?像easy_install和pip factor这样的东西是如何实现的?

所以我尝试了以下几点:

 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

然而,调用会抛出大量额外的chatter,这似乎意味着它是错误的:


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

Tags: installfrompy程序srchomebinlib
3条回答

安装:

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

要为库设置本地化虚拟环境,请执行以下操作:

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

即“简易安装”来安装新的东西。

Python Packaging User Guide“旨在成为关于如何使用当前工具打包、发布和安装Python发行版的权威资源”,建议使用pip以“开发模式”安装:

pip install -e <path>

因此,在包的根目录中,您可以简单地

pip install -e .

installing from a local source tree

Virtualenv允许您在完全独立和隔离的Python环境中工作。它可以让您轻松地创建多个安装了不同Python包或同一个包的不同版本的环境。Virtualenv还允许您在不同的环境之间轻松切换。

截至2012年,Python中包管理的首选工具实际上是pip,而不是setuptools。Pip能够处理依赖关系并在全局或虚拟环境中安装/卸载。皮普甚至和维图阿列诺夫一起出柜。

Python3

另外值得一提的是,随着PEP 405的实现,虚拟环境正在成为Python本身的一部分。

相关问题 更多 >