我正在尝试在家里的新开发机器上设置开发环境。我刚刚安装了Ubuntu,现在我正在尝试从我们的Web服务器克隆远程仓库并安装其依赖项,以便我可以开始工作。
到目前为止,我已经从pypi手动安装了virtualenv
和virtualenvwrapper
,并在我启动终端时适当地编辑了我的bash.rc来源我的virtualenvs。然后我将我的回购克隆到了~/projects/project-name/websitename.com
。然后我从virtualenvwrapper
使用mkvirtualenv env-name
到~/projects/project-name/websitename.com
。这恰好反映了我克隆的网络服务器的file-structure/setup
。到现在为止还挺好。
我登录到dev服务器并激活virtualenv
并使用pip freeze -l > req.txt
将依赖项列表和scp呈现给我的本地计算机。我在本地计算机上激活virtualenv
,导航到~/projects/project-name/websitename.com
并执行pip install -r path-to-req.txt
,它会遍历所有依赖项,就像没有错误一样。但是,当我尝试manage.py syncdb
时,我得到一个关于找不到核心django包的错误。我勒个去?所以我想知道Django无法安装,我run pip install Django==1.5.1
并成功完成。我必须再次设置我的网站,并获得另一个关于没有名为django_extensions
的模块的错误。好吧,到底是怎么回事,我刚用pip安装了所有这些包?!
所以我pip freeze -l > test.txt
和cat test.txt
,它列出了什么? Django==1.5.1
,我刚刚手动安装的一个软件包。为什么不将我的依赖项从我的指定列表安装到我的virtualenv?我在这里搞砸了什么?
-edit -------------
在我的virtualenv
中,哪个pip给了我pip的路径
我只有1个virtualenv并且已激活
答案 0 :(得分:6)
我通常的工作流程是
pip freeze > someFile.txt
然后使用
安装pip install -r someFile.txt
所以我确定这应该可以正常工作。不幸的是,除了确保检查
之外,我无法告诉你任何事情你真的属于你认为自己所处的虚拟世界。一定要运行
workon yourVirtualEnvName
在重要的情况下激活它。
请务必检查pip是否在您的virtualenv中。
which pip
给了我
/path/to/home/.virtualenvs/myVirtEnv/bin/pip
对不起,我不能给你一个更具体的答案。我必须半定期地执行此操作,并且我从未遇到过跳过依赖项的问题。祝你好运!
答案 1 :(得分:3)
不久前,我对这个问题的一些变化感到挣扎;它最终成为我杂乱的.bash_profile
文件。
确保您在.bash_profile
/ .bashrc
内没有任何可能会破坏您的虚拟内容的内容,例如$VIRTUAL_ENV
或$PYTHONHOME
或{{1环境变量。
答案 2 :(得分:2)
我知道这是一个老帖子,但我刚遇到类似的问题。在我的情况下,原因是我使用pip install
运行sudo
命令。这使得命令全局运行,并且包安装在全局python路径中。
希望能帮助某人。