尝试安装psutils
导致了一个很大的麻烦...
$ python -V
Python 2.4.2
$ cat /etc/SuSE-release
SUSE Linux Enterprise Server 10 (x86_64)
VERSION = 10
PATCHLEVEL = 4
$ cd psutil-2.1.1/
$ python setup.py install
Traceback (most recent call last):
File "setup.py", line 17, in ?
from distutils.core import setup, Extension
ImportError: No module named distutils.core
接下来-我尝试安装setuptools
以使用easy_install
$ which easy_install
which: no easy_install
$ cd ../setuptools-1.4/
$ python setup.py install
Traceback (most recent call last):
File "setup.py", line 12, in ?
from distutils.util import convert_path
ImportError: No module named distutils.util
正在尝试从ez_setup.py
安装distutils
$ python ez_setup.py
Traceback (most recent call last):
File "ez_setup.py", line 278, in ?
main(sys.argv[1:])
File "ez_setup.py", line 210, in main
egg = download_setuptools(version, delay=0)
File "ez_setup.py", line 139, in download_setuptools
from distutils import log
ImportError: No module named distutils
那么,我该如何安装它呢?
附言:不,我没有在这台机器上建立根目录,也不能使用包管理器。
发布于 2019-06-27 13:14:44
您需要运行此(如果python3上发生错误) ==> sudo apt-get install python3-distutils --reinstall
您需要运行此(如果python2上发生错误) ==> sudo apt-get install python2-distutils --reinstall
发布于 2020-07-20 09:28:50
我有一个答案here,但我会把它复制到这里
AskUbuntu答案:
Debian已经决定distutils不是一个核心python包,所以它不包括在debian和基于debian的OSes的最新版本中。您应该能够执行sudo apt install python3-distutils
,并且它应该可以工作。
然而,它对我来说并不起作用。我使用Parrot,它和Ubuntu一样,是基于Debian的。我升级了我的系统,pip停止了对python3.7的工作,并且我也得到了错误ModuleNotFoundError: No module named 'distutils.util'
我尝试了很多东西来修复它并重新安装distutils,我幸运地发现,python3.8 的pip3确实可以运行。然后我尝试了python3.7 -m pip3 -V
,得到了/usr/bin/python3.7: No module named pip3
,所以我决定看看/usr/lib
文件。
我看了看/usr/lib/python3/dist-packages
,一切看起来都很好。然后我查看了/usr/lib/python3.7
,看到了文件夹distutil
。
我打开它,看到了__pycache__
、__init__.py
文件和一个version.py
文件。我不知道其中应该有多少个文件,或者代码应该是什么,但我知道这两个文件要么是错误的,要么是缺少另一个文件。
然后我看了看/usr/lib/python3.8/distutil
里面是什么,它是完全不同的。我找到了以下文件:
command Folder
__pycache__ Folder
archive_util.py Python script
bcppcompiler.py Python script
cmd.py Python script
config.py Python script
core.py Python script
cygwinccompiler.py Python script
debug.py Python script
dep_util.py Python script
errors.py Python script
extension.py Python script
fancy_getopt.py Python script
filelist.py Python script
file_util.py Python script
__init__.py Python script
log.py Python script
msvc9compiler.py Python script
_msvccompiler.py Python script
msvccompiler.py Python script
README Plain text file
spawn.py Python script
sysconfig.py Python script
text_file.py Python script
unixccompiler.py Python script
util.py Python script
version.py Python script
versionpredicate.py Python script
这更有希望,而且由于pip3确实可以工作,我假设这个distutils也可以工作,并且我尝试通过运行以下命令将其复制到python3.7文件夹:
sudo cp -r /usr/lib/python3.8/distutil /usr/lib/python3.7/distutil
然后我又试了一次python3.7 -m pip -V
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.7)
然后我试着安装一些模块,一切都很正常。我希望这能对你有所帮助。
发布于 2020-08-19 08:53:34
@ciro
我需要做更多的工作才能让virtualenv再次运行(从18.04升级到20.04):
sudo cp /usr/lib/python3.8/_sysconfigdata__* /usr/lib/python3.6/
cd /usr/lib/python3.6
sudo ln -s _sysconfigdata_m_linux_x86_64-linux-gnu.py _sysconfigdata_m_x86_64-linux-gnu.py
https://stackoverflow.com/questions/23626034
复制相似问题