python - 如何在 MacOS 上使用 homebrew python3.6 解决 virtualenvwrapper 的问题?
问题描述
我有 MacOS 10.14.3 和 homebrew python 3.6.5_1,并且要安装 virtualenvwrapper python3 -mpip install virtualenv virtualenvwrapper
。一切都好。
然后我/usr/local/bin/virtualenvwrapper.sh
在我的源文件中.bashrc
设置VIRTUALENVWRAPPER_PYTHON=python3
(否则你会得到 MacOS python2,哎呀)。
然后,创建一个 virtualenv:
% mktmpenv
Using base prefix '/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6'
New python executable in ~/.local/share/virtualenvs/tmp-a4c44f99827fb6a/bin/python3.6
Also creating executable in ~/.local/share/virtualenvs/tmp-a4c44f99827fb6a/bin/python
Installing setuptools, pip, wheel...
done.
virtualenvwrapper.user_scripts creating ~/.virtualenvs/tmp-a4c44f99827fb6a/bin/predeactivate
virtualenvwrapper.user_scripts creating ~/.virtualenvs/tmp-a4c44f99827fb6a/bin/postdeactivate
virtualenvwrapper.user_scripts creating ~/.virtualenvs/tmp-a4c44f99827fb6a/bin/preactivate
virtualenvwrapper.user_scripts creating ~/.virtualenvs/tmp-a4c44f99827fb6a/bin/postactivate
virtualenvwrapper.user_scripts creating ~/.virtualenvs/tmp-a4c44f99827fb6a/bin/get_env_details
~/.local/share/virtualenvs/tmp-a4c44f99827fb6a/bin/python3: Error while finding module specification for 'virtualenvwrapper.hook_loader' (ModuleNotFoundError: No module named 'virtualenvwrapper')
~/.local/share/virtualenvs/tmp-a4c44f99827fb6a/bin/python3: Error while finding module specification for 'virtualenvwrapper.hook_loader' (ModuleNotFoundError: No module named 'virtualenvwrapper')
最后出现的这些错误似乎是因为 virtualenvwrapper 模块仅安装在系统(自制)python3 中,而不安装在 virtualenv 本身中 - 所以一旦激活 virtualenv(即 PYTHONPATH 设置为排除标准路径),它可以'找不到 virtualenvwrapper:
% python3 -c 'import virtualenvwrapper; print(virtualenvwrapper)'
<module 'virtualenvwrapper' (namespace)>
% mkvirtualenv foo
... installs stuff... gives errors...
(foo) % python3 -c 'import virtualenvwrapper'
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'virtualenvwrapper'
我想我一定是配置错误,或者我在某处遗漏了一步。
[编辑] 更多信息:virtualenvwrapper_run_hook
,它运行钩子,通过做加载 python
$VIRTUALENVWRAPPER_PYTHON -m 'virtualenvwrapper.hook_loader' ...
这显然不会在虚拟环境中工作,因为它还没有virtualenvwrapper
安装。我错过了什么?
解决方案
推荐阅读
- python - Python大写字符串列表
- bash - 使用 bash 将内容附加到 ROOT 文件?
- android - 错误:使用 JsonReader.setLenient(true) 在第 1 行第 1 列路径 $ 接受格式错误的 JSON
- c# - C# 用户击键未注册
- python - 在循环内合并数据框 - 熊猫很慢
- amazon-web-services - AWS 自定义授权方超时
- sql - SQL中子查询的替代方案?
- svn - svn propset svn:auto-props :递归地为整个存储库设置多个文件,如何?
- python - Django ModelForm 和 mock.patch.object 打破单元测试隔离?
- azure-powershell - 如何使用 powershell 命令 Set-AzureRmLogicApp 更改逻辑应用的参数?