我正在运行一个django项目,其中的virtualenv工作完全正常,直到今天下午。我去运行源my-env/bin/activate
它似乎激活(它给了我通常的命令提示符),但当我尝试python manage.py runserver
它说它无法找到django。我运行了一个python脚本并尝试导入django,果然它说没有名为django的模块。所以我删除了这个virtualenv并创建了一个新的并且做了pip install -r requirements.txt
。就在那时我注意到pip永远悬挂在^C
类型上,它会给我一个很长的回溯,我在下面提供。一旦发生这种情况,我再次尝试删除virtualenv,并且只在我键入virtualenv new-env
时才会重新启动它会挂起“安装setuptools,pip,wheel ......”并在进入{{1 }}。我已经浏览了所有在线论坛,并尝试了一切来解决这个问题,似乎没有任何工作。如果有人对如何解决这个问题有任何想法,我会非常感激。
^C
答案 0 :(得分:7)
可能不是很有帮助,但我遇到了相同的症状,发现使用详细选项有帮助:
mkvirtualenv new-env -v
输出指向我遇到的代理问题,阻止使用setuptools,我通过修复代理设置解决了这个问题:
Installing setuptools, pip, wheel...
Collecting setuptools
Retrying (Retry(total=4, connect=None, read=None, redirect=None))
after connection broken by 'ProxyError('Cannot connect to proxy.',
timeout('timed out',))': /devpi/setuptools/
答案 1 :(得分:2)
我遇到了很多麻烦,我从各种StackOverflow讨论中尝试的任何东西都没有帮助。我已经绝对肯定这不是一个网络问题,事实上我希望从Ubuntu 16升级到18会神奇地修复它......但它没有。所以我认为我有来实际修复它。
我开始怀疑它与我的用户目录有关,因为当我以root用户身份尝试时它起作用了。此外,我已将我的整个主目录复制到临时磁盘,然后在升级后返回主硬盘(因为我想要全新安装Ubuntu 18"最小"选项)。所以我开始怀疑我的主文件夹中的某些东西是有罪的。
使用virtualenv
选项运行-vv
仅显示它已停止:Collecting setuptools
。
考虑到许多人建议检查互联网连接,我认为它可能与缓存有关。所以我尝试使用以下内容清空~/.cache
目录。
rm -rf ~/.cache/*
在另一个终端窗口中挂起的virtualenv
命令会立即继续并在几秒钟内完成。
我不知道如果在运行一堆应用程序的情况下以这种方式清空缓存被认为是勇敢的,但无论如何,它确实可以解决问题。
@ t354建议只删除~/.cache/pip
:
rm -rf ~/.cache/pip
Haven自己尝试过,但如果它也能正常运行,那么它可能比删除~/.cache
内的所有内容更安全
答案 2 :(得分:0)
老兄,经过长时间的痛苦,我解决了这个问题。
通过几个选项重新安装以下软件包pip \ setuptools \ wheel。
python -m pip install <package_name> --upgrade --force-reinstall --no-binary <package_name>
问题可能出在上述软件包之一的版本没有向后兼容性。