use*_*099 20 python virtualenv python-3.x
我使用virtualenv创建了一个python虚拟环境,在激活之后,我可以看到Python的安装位置,
(virtualenv-test)bash-4.1 $ whereis python
python:/usr/bin/python2.6 /usr/bin/python2.6-config/usr/bin/python /usr/lib/python2.6 /usr/lib64/python2.6/usr/X11R6/bin/python2 .6 /usr/X11R6/bin/python2.6-config/usr/X11R6/bin/python /usr/bin/X11/python2.6 /usr/bin/X11/python2.6-config/usr/bin/X11/python /usr/include/python2.6 /usr/share/man/man1/python.1.gz
(virtualenv-test)bash-4.1 $ python
/数据/的virtualenv测试/ bin中/蟒
但是,在输入python之后,我收到以下错误信息,可能是什么原因?
(virtualenv-test) bash-4.1$ python
python: error while loading shared libraries: libpython3.4m.so.1.0: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
小智 22
首先找出python3.4的lib路径(在它安装的文件夹中),像我一样:/ opt/python361/lib,然后将其添加到环境变量中:
sudo vi /etc/ld.so.conf
sudo /sbin/ldconfig -v,将python3.x的lib路径添加到此文件(就像我:/ opt/python361/lib),并保存此conf文件的修改;sudo vi /etc/ld.so.conf.就这样.bux*_*oum 20
另一种方法是添加LDFLAGS="-Wl,-rpath /usr/local/lib"配置,例如
./configure --prefix=/usr/local --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
Run Code Online (Sandbox Code Playgroud)
/usr/local/lib是libpython3.*.so文件所在的路径
export LD_LIBRARY_PATH=[your python path to libpython3.4m.so]
libpython3.4m.so 在构建它的python源代码下。
将其放在您的.bashrc中以将其设置为自动登录。
我无法在计算机上将virtualenv强制设置为3.4,但您可以看到在libvirtualenv的下面只有一堆符号链接指向本地python安装。我想libpython3.4m.so是其中之一。
对我来说,libpython3.6m.so.1.0位于我下载 Python 源代码的文件夹 ( ~/Python3.6.9) 中。
我只是做了:
sudo cp ~/Python3.6.9/libpython3.6m.so.1.0 /usr/local/lib/python3.6/
Run Code Online (Sandbox Code Playgroud)
和:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/python3.6
Run Code Online (Sandbox Code Playgroud)
对于Python 3.6,它已由修复。
sudo apt-get install libpython3.6-dev
Run Code Online (Sandbox Code Playgroud)
小智 5
这对我有用。
cd ~/
vim .bashrc
export LD_LIBRARY_PATH=~/miniconda/envs/python3.6/lib/
Run Code Online (Sandbox Code Playgroud)