Matplotlib现在需要安装python作为框架,以便以交互模式(Working with Matplotlib on OSX)使用它,我这样做是:
python -m venv my-virtualenv
source my-virtualenv/bin/activate
这很好。例如,如果我这样做:
my-virtualenv> pip3 install tensorflow
在这个新环境中,它可以很好地构建tensorflow,当我在my-virtualenv中进入python3 shell时,可以很好地导入它。但是,当我创建符号链接时:
ln -s my-virtualenv/bin/python3 /usr/local/bin/python36x
然后输入python36x shell tensorflow例如不可用。我已经尝试过
python -m venv --copies my-virtualenv
也无济于事。如何创建功能性符号链接?
答案 0 :(得分:0)
好的,Pycharm实际上有其自身的处理方式:请参见how to set the interpreter to use across multiple platforms。皮查姆很好!
答案 1 :(得分:0)
Python3的venv创建指向虚拟环境的bin / python的链接,而不是像virtualenv这样复制文件。 Python2的加载程序将跟踪链接,直到找到实际的python可执行文件为止,然后使用该目录查找库(../lib/)。 Python3的加载程序不遵循链接,而是使用python目录(是否链接)来定位库。
您可以使用别名代替链接:
alias python36e=my-virtualenv/bin/python3
它不在路径上,但可以直接访问。
更好的解决方案是在路径中放置包装脚本。
# cat /usr/local/bin/python36x
myprog=my-virtualenv/bin/python3
exec "${myprog}" "$@"
HTH