11

我正在尝试在家里的新开发机器上设置开发环境。我刚刚安装了 Ubuntu,现在我正在尝试从我们的网络服务器克隆一个远程仓库并安装它的依赖项,这样我就可以开始工作了。

到目前为止,我已经手动安装virtualenvvirtualenvwrapper从 pypi 并适当地编辑了我的 bash.rc 以在我启动终端时获取我的 virtualenvs。然后我将我的回购克隆到~/projects/project-name/websitename.com. 然后我virtualenvwrapper以前mkvirtualenv env-name~/projects/project-name/websitename.com. 这完全反映了file-structure/setup我从中克隆的 Web 服务器的情况。到目前为止,一切都很好。

我登录到开发服务器并激活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成功完成了。我必须再次设置我的站点并收到另一个关于 no module named 的错误django_extensions。好吧,这到底是怎么回事,我刚刚用 pip 安装了所有这些包?!

所以 ipip freeze -l > test.txtcat test.txt,它列出了什么?Django==1.5.1,我刚刚手动安装的一个包。为什么 pip 不将我指定列表中的依赖项安装到我的 virtualenv 中?我在这里搞砸了什么?

-编辑 - - - - - - -

哪个 pip 给了我在我的 virtualenv 中 pip 的路径

我只有 1 个 virtualenv,它已被激活

4

3 回答 3

6

我通常的工作流程是

pip freeze > someFile.txt

然后安装

pip install -r someFile.txt

所以我确信这应该可以正常工作。不幸的是,除了一定要检查之外,我真的不能告诉你任何事情

  1. 你真的在你认为你所在的 virtualenv 中。确保运行

    workon yourVirtualEnvName
    

    激活它以防万一。

  2. 确保检查 pip 是否在您的 virtualenv 中。

    which pip
    

    给我

    /path/to/home/.virtualenvs/myVirtEnv/bin/pip
    

对不起,我不能给你更具体的答案。我必须半定期地这样做,而且我从来没有遇到过跳过依赖项的问题。祝你好运!

于 2013-09-04T00:12:56.777 回答
3

不久前还在为这个问题的一些变化而苦苦挣扎;它最终成为我杂乱无章的.bash_profile文件。

.bash_profile确保您的/中没有任何可能弄乱您的 virtualenv 的东西.bashrc,例如$VIRTUAL_ENVor$PYTHONHOME$PYTHONPATH环境变量。

于 2014-09-16T13:14:22.537 回答
2

我知道这是一个旧帖子,但我刚刚遇到了类似的问题。就我而言,原因是我正在pip install使用sudo. 这使得命令全局运行,并且包安装在全局 python 路径中。

希望对某人有所帮助。

于 2015-10-03T18:18:05.067 回答