Python: ошибка при загрузке разделяемых библиотек: libpython3.4m.so.1.0: невозможно открыть файл общих объектов: такой файл или каталог отсутствует
Я создал виртуальную среду python с помощью virtualenv, после ее активации я вижу, где установлен Python,
(virtualenv-test) bash -4.1 $whereis python
python:/usr/bin/python2.6/usr/bin/python2.6-config/usr/bin/python /usr/lib/python 2.6/usr/lib64/python2.6/usr/X11R6/bin/python2.6 /usr/X 11R6/bin/python2.6-config/usr/X11R6/bin/python /usr/bin/X 11/python2.6/usr/bin/X11/python2.6-config /usr/bin/X 11/python/usr/include/python2.6 /usr/share/man/man 1/python.1.gz
(virtualenv-test) bash -4.1 $, который python
/данные/virtualenv-тест/бен/Python
Однако, после ввода 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
Ответы
Ответ 1
- Кто-то сказал, что этот способ может решить проблему (я не знаю, работает ли он, потому что я исправляю проблему другим способом): добавьте путь lib py3.4 в переменную среды $ LD_LIBRARY_PATHСначала узнайте путь к lib для python3.4 (в папке, в которой он установлен), как я: /opt/python361/lib, затем добавьте его в переменную окружения:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/python361/lib
- Я столкнулся с подобной проблемой при использовании virtualenv с python3.6, и я исправил следующее:
- Во-первых, отредактируйте
sudo vi /etc/ld.so.conf
, добавьте lib путь python3.x к этому файлу (как я: /opt/python361/lib) и сохраните изменение этого файла conf;
- Затем активируйте этот файл с помощью
sudo /sbin/ldconfig -v
. Это все.
Ответ 2
export LD_LIBRARY_PATH=[your python path to libpython3.4m.so]
libpython3.4m.so
находится под вашим источником python, из которого вы его создали.
Поместите его в свой .bashrc, чтобы автоматически установить его при входе в систему.
Я не могу заставить virtualenv равным 3.4 на моей машине, но вы можете видеть, что в lib
вашего виртуального v существует только пучок символической ссылки на вашу локальную установку python. Я думаю, libpython3.4m.so
является выборкой одним из них.
Ответ 3
Для Python 3.6 это было исправлено
sudo apt-get install libpython3.6-dev
Ответ 4
Другой способ - добавить LDFLAGS="-Wl,-rpath/usr/local/lib"
, например, в configure.
./configure --prefix=/usr/local --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
/usr/local/lib
- это путь к libpython3.*.so
файлы находятся в
Ответ 5
Слава выше, для Python 3.X вы можете решить эту проблему с помощью:
sudo apt-get install libpython3.x-dev
Нет необходимости вносить какие-либо изменения в путь среды вручную.