缺少python bz2模块
我已安装在我的主目录中缺少python bz2模块,python,linux,bzip2,Python,Linux,Bzip2,我已安装在我的主目录中 [spatel@~ dev1]$ /home/spatel/python-2.7.3/bin/python -V Python 2.7.3 我试图运行一个需要Python2.7.x版本的脚本,但我发现缺少bz2错误 [spatel@~ dev1]$ ./import_logs.py Traceback (most recent call last): File "./import_logs.py", line 13, in <module> im
[spatel@~ dev1]$ /home/spatel/python-2.7.3/bin/python -V
Python 2.7.3
我试图运行一个需要Python2.7.x版本的脚本,但我发现缺少bz2错误
[spatel@~ dev1]$ ./import_logs.py
Traceback (most recent call last):
File "./import_logs.py", line 13, in <module>
import bz2
ImportError: No module named bz2
当您从源代码构建python时,可能没有bz2头文件 在Ubuntu/Debian上安装它们:
sudo apt-get install libbz2-dev
软呢帽:
sudo yum install bzip2-devel
然后再次构建python。
您可能会注意到,python在配置/构建时会检查许多库,如果您错过了其中一些库,那么您可能无法在您的案例中获得对像bz2这样的LIB的支持
您应该使用预构建二进制文件来避免这种情况。Ubuntu 12.04软件包,即脚本所需的版本。您需要安装BZ2C库的开发版本。您可能没有,这就是为什么在构建python的用户副本时没有安装它。在Ubuntu上是libbz2开发包。它在软呢帽上的名字可能相同或相似。也可以从www.bzip.org下载。在CentOS 7上,安装bzip2-devel:
sudo yum install bzip2-devel
然后重新编译python。您必须通过源代码重新安装
bzip2
:
yum安装bzip2-devel
wgethttp://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz
tar-zxvf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6
make&&make-install
最后,我已经解决了这个问题,它需要/usr/local/Python-3.5.2/lib/python3.5/lib dynload/_bz2.cpython-35m-x86_64-linux-gnu。所以,当我用源代码编译bzip2时,它一定有问题。我从另一个VM复制此文件以解决此问题。如果在特定位置安装python,只需安装
libbz2 dev
将无法工作
centos有一个解决方案:
- Centos 6
sudo cp /usr/lib64/python2.6/lib-dynload/bz2.so /python_install_path/lib/python2.7
- Centos 7
sudo cp /usr/lib64/python2.7/lib-dynload/bz2.so /python_install_path/lib/python2.7
python\u install\u path
通常是/usr/local/lib/python2.7/
,如果您有自定义的python path,则需要替换它。我还应该在CentOS 6上添加它,确保您安装了bzip2 devel
,而不是bzip2 libs
。上述解决方案可以解决python2.7的bz2问题。但不是Python3.x
是的,您需要_bz2.cpython-3xm-x86_64-linux-gnu。因此,您应该在自己的环境中构建它
以下是我的解决方案:
export CFLAGS="-I/usr/include"
export LDFLAGS="-L/usr/lib64"
export LD_LIBRARY_PATH=/usr/lib64
make distclean
./configure --prefix=/home/xxx/Python3 && make && make install
您可以将前缀设置为与预版本相同的前缀,这将不会取消安装的任何软件包。在此之前,制作一个备份文件夹。这是我在CentOS上的解决方案:(步骤2-6可能会跳过)
sudo-yum安装bzip2-devel
bzip2-1.0.6.tar.gz
tar-zxvf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6
make&&make-install
/[您的python路径]/lib dynload/_bz2.cpython-35m-x86_64-linux-gnu.so
sudo ln-s`find/usr/lib64/-type f-name“libbz2.so.1*”`/usr/lib64/libbz2.so.1.0
归功于在从不同位置安装
Python
时,我也会遇到这个问题(我在centos7
上使用python3.7.5
)
以下是我使其能够工作的步骤:
wget/curl
制作
安装
通过这样做,您不需要下载
\u bz2.cpython-35m-x86\u 64-linux-gnu.so
文件。在导入熊猫时,我在python 3.8.2中遇到了这种情况:将熊猫导入为pd
导致一条以“错误:ModuleNotFoundError:没有名为“_bz2”的模块”结尾的长错误消息
通过执行以下2个bash命令解决了此问题:
sudo apt-get install libbz2-dev
sudo cp /usr/lib/python3.8/lib-dynload/_bz2.cpython-38-x86_64-linux-gnu.so /usr/local/lib/python3.8/
然后它工作得很好 发生这种情况是因为
。因此
文件丢失
比如说python3.7从以下位置下载该文件:
对于不同版本的python
请尝试为您的版本查找此文件。比如说python3.8将37
更改为38
等,然后查找并下载该文件
现在进入Ubuntu
:使用sudo
权限复制/usr/local/lib/python3.7
文件夹中的文件
要执行此操作,请转到下载文件的文件夹并执行命令(根据python
版本相应更改文件名和目标文件夹):
最后下载python
,解压缩zip文件,解压缩后配置并编译:
./configure --enable-optimizations
sudo make altinstall
这只发生在朱皮特为我进口熊猫的时候
我的修复方法是将
/usr/lib/python3.8/lib dynload
(包括\u bz2.cpython-38-x86\u 64-linux-gnu.so
)的内容复制到~/.local/lib/python3.8/site packages/
我在使用本地编译的python 3.6.9进行debian伸缩时也遇到了同样的问题
在/usr/local/lib/python3.6/lib-dynload/中,有一个_bz2.cpython-365m-x86_64-linux-gnu.so文件(请注意“365m”部分…)
我创建了这个库的符号链接,它解决了这个问题:
sudo ln -s _bz2.cpython-365m-x86_64-linux-gnu.so _bz2.cpython-369m-x86_64-linux-gnu.so
sudo ln -s _bz2.cpython-365m-x86_64-linux-gnu.so _bz2.cpython-36m-x86_64-linux-gnu.so
我还得到了这个恼人的输出并修复了那个错误。我在
python3.7
和3.8
中得到了这个错误。我甚至没有远程服务器上的sudo权限,但我通过降级Python成功地修复了这个错误。安装Python3.6
而不是3.7或3.8解决了这个问题。Fedora软件包是bzip2-devel(至少在Fedora 14之前),我必须安装所有这些来在CentOS6.4上构建一个正常工作的python2.7。yum安装-y bzip2-devel-zlib-zlib-devel-openssl-openssl-devel@Mithril在安装libbz2之后,我们需要重新编译python sitti
wget/curl <bzip2_url>
make
make install
sudo apt-get install libbz2-dev
sudo cp /usr/lib/python3.8/lib-dynload/_bz2.cpython-38-x86_64-linux-gnu.so /usr/local/lib/python3.8/
sudo cp _bz2.cpython-37m-x86_64-linux-gnu.so /usr/local/lib/python3.7
./configure --enable-optimizations
sudo make altinstall
sudo ln -s _bz2.cpython-365m-x86_64-linux-gnu.so _bz2.cpython-369m-x86_64-linux-gnu.so
sudo ln -s _bz2.cpython-365m-x86_64-linux-gnu.so _bz2.cpython-36m-x86_64-linux-gnu.so