pip可以将依赖源复制到我的虚拟环境中吗?
我刚开始学习Python和Django,真的是个菜鸟。为了在我的Windows电脑上设置环境,我做了以下几步。
- 安装Python 3.4
- 用pip安装virtualenv
- 创建一个项目文件夹,并在里面设置一个虚拟环境
- 从官网上下载Django 1.7b1版本
- 把下载的文件解压到我的下载文件夹里
- 把它安装到我的虚拟环境中
在最后一步,我是用虚拟环境里的pip来安装的。
[project]\scripts\pip.exe install -e [downloads]\Django-1.7b1
从全局的Python解释器里,我无法import django
,这也是预料之中的。当我使用虚拟环境里的Python执行时,它就能正常工作。但只有在我的下载文件夹里有Django的源代码时,导入才成功。其实我想把它放到我的虚拟环境里。
我能不能让pip自动把Django的源代码复制到我的项目文件夹里呢?
1 个回答
1
通过 pip 在虚拟环境中安装 django
。我是在 Linux 系统上操作,但你在 Windows 上也可以运行这些命令。
如果你需要的版本在 PyPi 上找不到,可以下载这个包,然后把它安装到虚拟环境的 site-packages
文件夹里。
我项目的 site-packages
文件夹在 ~/venvs/project/lib/python2.7/site-packages
。要在这里安装:
pip install downloads/Django-1.7b1.tar.gz -t ~/venvs/project/lib/python2.7/site-packages
Django 会被安装到 site-packages
文件夹里,现在你可以在虚拟环境中使用它了。Downloads/Django-1.7b1
这个文件就不需要了。
下面是一个例子,我从本地的压缩包安装 Django 1.7b1 到我的虚拟环境的 site-packages
文件夹:
(project)msvalkon@Lunkwill:/tmp$ pip install /tmp/Django-1.7b1.tar.gz -t ~/venvs/project/lib/python2.7/site-packages/
Unpacking ./Django-1.7b1.tar.gz
Running setup.py egg_info for package from file:///tmp/Django-1.7b1.tar.gz
-- SNIP --
Successfully installed Django
Cleaning up...
(project)msvalkon@Lunkwill:/tmp$ python -c "import django;print django.get_version()"
1.7b1
(project)msvalkon@Lunkwill:/tmp$ deactivate
# I've got a really old version installed globally, but you can see
# that the installation worked.
msvalkon@Lunkwill:/tmp$ python -c "import django;print django.get_version()"
1.5.1
完成后,当你在激活虚拟环境的情况下运行 pip freeze
,应该能看到以下输出:
(project)msvalkon@Lunkwill:/tmp$ pip freeze
Django==1.7b1
argparse==1.2.1
wsgiref==0.1.2