Anaconda Python virtualdev 在适用于 Linux 的 Windows 子系统(Ubuntu 14.04)上找不到 libpython3.5m.so.1.0
Posted
技术标签:
【中文标题】Anaconda Python virtualdev 在适用于 Linux 的 Windows 子系统(Ubuntu 14.04)上找不到 libpython3.5m.so.1.0【英文标题】:Anaconda Python virtualdev can't find libpython3.5m.so.1.0 on Windows Subsystem for Linux (Ubuntu 14.04) 【发布时间】:2017-01-10 22:34:41 【问题描述】:我在 Windows 周年版 Linux 子系统 (WSL) 上使用 Anaconda 4.1.1 安装了 Python 3.5.2,它或多或少是嵌入式 Ubuntu 14.04.5 LTS。
我使用以下方式安装了 virtualenv:
pip install virtualenv
然后我尝试在~/temp
内部创建一个虚拟环境:
user@host:~$ virtualenv ~/temp/test
Using base prefix '/home/user/anaconda3'
New python executable in /home/user/temp/test/bin/python
/home/user/temp/test/bin/python: error while loading shared libraries: libpython3.5m.so.1.0: cannot open shared object file: No such file or directory
ERROR: The executable /home/user/temp/test/bin/python is not functioning
ERROR: It thinks sys.prefix is '/home/user' (should be '/home/user/temp/test')
ERROR: virtualenv is not compatible with this system or executable
很容易假设这只是一个 WSL 问题,但到目前为止一切正常,我在 Ubuntu 上看到过类似的错误报告。知道问题出在哪里吗?
【问题讨论】:
我认为你需要传递-p python3
选项来告诉virtualenv
你想要一个Python 3 解释器,即尝试virtualenv ~/temp/test -p python3
看看是否会改变。
不;添加-p python3
没有任何改变。
anaconda 更喜欢您使用 conda 创建环境。另见anaconda-issues。
@bren,我们都有自己的偏好,您甚至可以争辩说 conda 比 pip 更好,我不会不同意。但这是一个单独的问题。您没有解决问题,您提供的链接也没有解决问题——即使它有 cmets 争论哪个工具更好。问题在于是什么导致了 pip 错误——而不是是否有人更喜欢除了 pip 之外的东西。
发帖this issue
【参考方案1】:
我没有遇到同样的问题,也没有尝试复制 WSL 环境。但通常当其他库发生类似情况时,它很可能是一个配置不当的环境。您必须检查您的库路径:
echo $LD_LIBRARY_PATH
并确保包含libpython
的目录在那里。如果没有:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/the/py/lib/dir
将最后一行添加到您的 .bash_profile
或 .bashrc
以使其永久化。
【讨论】:
就是这样!我将export LD_LIBRARY="$LD_LIBRARY_PATH:$HOME/anaconda3/lib"
添加到我的.bashrc
中,现在virtualenv
可以工作了。非常感谢!【参考方案2】:
我的解决方案:
打开一个外壳
cd
vim .bashrc
添加一行
export LD_LIBRARY_PATH=~/anaconda3/lib
【讨论】:
或export LD_LIBRARY_PATH=~/miniconda3/lib
。以上是关于Anaconda Python virtualdev 在适用于 Linux 的 Windows 子系统(Ubuntu 14.04)上找不到 libpython3.5m.so.1.0的主要内容,如果未能解决你的问题,请参考以下文章