将Python项目与虚拟环境链接
我在虚拟机上用Windows 7主机运行了一个Ubuntu 12的服务器。在一个共享文件夹/workspace里,我有一个Python项目叫project01。因为VirtualBox在共享文件夹里创建符号链接时有问题,所以我在我的用户主目录下创建了一个虚拟环境,路径是/home/user1/venv。我可以顺利激活这个虚拟环境。
source ~/venv/bin/activate
但是当我尝试运行manage.py时,出现了一个错误。
~/venv/bin/python manage.py runserver
Traceback (most recent call last):
File "manage.py", line 8, in <module>
from django.core.management import execute_from_command_line
ImportError: No module named django.core.management
我知道我可能漏掉了某个路径,但我不太确定该添加哪个路径,以及要添加到哪里。我试着在激活脚本里设置PYTHONPATH,但没有成功。我需要在激活脚本里添加Django核心管理的路径吗?我在venv/build下看到了一堆Django的目录。
Django
django-appconf
django-celery
django-celery-email
django-celery-transactions
django-debug-toolbar
django-filebrowser
django-grappelli
djangohelpers
django-imagekit
django-pipeline
django-redis
django-sslify
django-storages
django-widget-tweaks
我需要在那里面指向某个地方吗?我对Django和虚拟环境还是个新手。
更新 看起来这些包没有被安装。所以这又是另外一回事。谢谢你的回复。我还有其他一些问题需要解决。
我在虚拟环境里运行了pip install -r requirements.txt,结果只遇到一个关于Postgres的错误,但我并没有使用本地的Postgres服务器,所以这不是大问题。除非这个错误阻止了其他东西的安装,那就很严重了。
当我检查site-packages时,只看到了以下内容: easy-install.pth pip-1.2.1-py2.7.egg setuptools-0.6c11-py2.7.egg setuptools.pth
而pip freeze显示的是: argparse==1.2.1 wsgiref==0.1.2
pip install的错误信息是: 异常信息: 回溯(最近的调用在最前面): 文件 "venv/local/lib/python2.7/site-packages/pip-1.2.1-py2.7.egg/pip/basecommand.py",第107行,在main中 status = self.run(options, args) 文件 "venv/local/lib/python2.7/site-packages/pip-1.2.1-py2.7.egg/pip/commands/install.py",第256行,在run中 requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle) 文件 "venv/local/lib/python2.7/site-packages/pip-1.2.1-py2.7.egg/pip/req.py",第1042行,在prepare_files中 req_to_install.run_egg_info() 文件 "venv/local/lib/python2.7/site-packages/pip-1.2.1-py2.7.egg/pip/req.py",第236行,在run_egg_info中 command_desc='python setup.py egg_info') 文件 "venv/local/lib/python2.7/site-packages/pip-1.2.1-py2.7.egg/pip/util.py",第612行,在call_subprocess中 % (command_desc, proc.returncode, cwd)) 安装错误:命令python setup.py egg_info失败,错误代码1,位于venv/build/psycopg2
1 个回答
这个错误看起来是因为你的虚拟环境(venv)里没有Django这个东西。
你可以用几种方法来确认Django是否已经安装在你的虚拟环境里:
如果你是用PIP来安装的,可以通过运行 pip freeze
来检查这个包是否已经安装。
另外,你还可以去 lib/python2.7/site-packages/
这个文件夹里看看,里面应该有一个django的文件夹。这个文件夹是你虚拟环境的PYTHONPATH的一部分。
如果你在那个地方找不到这些模块,或者你把它们安装在了其他地方,那么你需要确保那个路径是你虚拟环境的PYTHONPATH的一部分。