小编djo*_*ume的帖子

pip和virtualenv有什么好处?

所以每个人都在告诉我使用pip和virtualenv,但是没有人能够解释我它是如何比我目前的方法更好.人们使用pip和virtualenv的主要原因似乎是其他人都在使用它...

我确信有充分的理由使用PIP和virtualenv,但我无法在Google上找到它们.我希望来自stackoverflow社区的人能够向我解释它们.

以下是我目前如何组织我的Django项目:

site/src/ : contains all python-only dependencies of my project

site/lib/ : contains symlinks to the python packages

site/[projectname]/ : contains all my project specific code
Run Code Online (Sandbox Code Playgroud)

整个站点文件夹在我的存储库中检查(是的,包括所有仅限python的依赖项,例如django本身).

所有非python-only依赖项(PIL,psycopg2,...)都记录在README中并安装在系统级别(apt-get install ....)

例如,假设我有一个项目名称"projectfoo"依赖于django-1.2.3,pygeoip-0.1.3和psycopg2我会:

/usr/lib/python2.5/site-packages/psycopg2

~/projects/foo/site : checkout of my repository
~/projects/foo/site/src/django-1.2.3
~/projects/foo/site/src/pygeoip-0.1.3
~/projects/foo/site/lib/django -> symlink to ../src/django-1.2.3/django
~/projects/foo/site/lib/pygeoip -> symlink to ../src/pygeoip-0.1.3/pygeoip
~/projects/foo/site/projectfoo/
Run Code Online (Sandbox Code Playgroud)

现在,在实践中,这与PIP/virtualenv相比如何?

使用我当前的方法部署项目:

svn checkout https://myserver.com/svn/projectfoo/tags/1.0.0STABLE/site
Run Code Online (Sandbox Code Playgroud)

使用PIP/virtualenv进行部署:

wget https://myserver.com/svn/projectfoo/tags/1.0.0STABLE/projectfoo-requirements.txt
pip install -U -E projectfoo-venv -r projectfoo-requirements.txt
Run Code Online (Sandbox Code Playgroud)

使用我当前的方法处理项目:

cd ~/projects/foo/site/projectfoo
export PYTHONPATH=.:..:../lib
./manage.py runserver 0:8000
Run Code Online (Sandbox Code Playgroud)

使用PIP/virtualenv处理项目 …

python django pip

23
推荐指数
2
解决办法
6877
查看次数

标签 统计

django ×1

pip ×1

python ×1