virtualenv和Python路径
我在 c:\users\devtool.virtualenv\devenv 创建了一个虚拟环境。
然后我运行了 activate.bat。
最后,我写了一个简单的 Python 文件来测试这个环境:
import os,sys
for x in sys.path:
print x
print os.executable
结果有点奇怪。
C:\Users\devtool\.virtualenv\devenv\Scripts
C:\Python27\lib\site-packages\setuptools-0.6c11-py2.7.egg
C:\Python27\lib\site-packages\virtualenv-1.8.4-py2.7.egg
C:\Python27\lib\site-packages\pip-1.2.1-py2.7.egg
C:\Users\developer\.virtualenv\devenv\Lib\site-packages\django
C:\Windows\system32\python27.zip
C:\Python27\DLLs
C:\Python27\lib
C:\Python27\lib\plat-win
C:\Python27\lib\lib-tk
C:\Python27
C:\Python27\lib\site-packages
['C:\\Users\\developer\\.virtualenv\\devenv\\Lib\\site-packages\\django']
C:\Python27\python.exe
其实它只是使用了基础的 Python 安装。
那使用虚拟环境有什么意义呢?我在虚拟环境中安装的 Django 出现了错误。
我可以解决这个问题,只需要重写 django-admin.py,把我的虚拟环境文件夹加到搜索路径里,但在这种情况下,虚拟环境还有什么用呢?
还有一个我不明白的地方。在 Python 的搜索路径中,有一行:
C:\Users\devtools\.virtualenv\devenv\Lib\site-packages\django
当我使用 django-admin.py 时,我得到了:
Traceback (most recent call last):
File "C:\Users\devtools\.virtualenv\devenv\Scripts\django-admin.py", line 12, in module>
from django.core import management
ImportError: No module named django.core
但 Django 文件夹在路径中啊。
2 个回答
0
我几天前也遇到过同样的问题。从根目录开始,你需要执行下面这个命令。
C:\Users\devtools\.virtualenv\devenv> python Scripts\django-admin.py startproject myproj
0
virtualenv 是一个工具,它可以在你的电脑上创建一个独立的 Python 环境。简单来说,它会把你自己创建的 Python 路径放在系统 Python 路径的前面。这样一来,当你在这个环境中运行 Python 代码时,系统就会优先使用你自己环境中的库,而不是系统自带的库。
你需要记住的是,运行 activate
命令会修改你当前的命令行环境,所以在运行依赖于你虚拟环境的 Python 代码之前,一定要先执行 activate
。