virtualenv和Python路径

0 投票
2 回答
2781 浏览
提问于 2025-04-17 16:22

我在 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

撰写回答