为什么pip会显示“没有名为commands.install的模块”?

6

我已经安装了pip,并且在cmd中将目录移动到C:\Python27\Scripts。我尝试运行以下代码:pip install whatever.whl


底部显示一个类似Python的随机代码:


'ImportError: No module named commands.install'是什么意思?

3个回答

9

我曾在另一种情况下通过卸载问题软件包解决了这个问题。你可以试试以下方法:

sudo pip install -U setuptools

这是我的日志:

sam@sam:~$ sudo pip install protobuf --upgrade
The directory '/home/sam/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/sam/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting protobuf
  Downloading protobuf-2.6.1.tar.gz (188kB)
    100% |████████████████████████████████| 188kB 194kB/s 
Collecting setuptools (from protobuf)
  Downloading setuptools-18.5-py2.py3-none-any.whl (462kB)
    100% |████████████████████████████████| 462kB 940kB/s 
Installing collected packages: setuptools, protobuf
  Found existing installation: setuptools 18.4
    Uninstalling setuptools-18.4:
      Successfully uninstalled setuptools-18.4
  Rolling back uninstall of setuptools
Exception:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/pip/basecommand.py", line 211, in main
    status = self.run(options, args)
  File "/usr/local/lib/python2.7/dist-packages/pip/commands/install.py", line 311, in run
    root=options.root_path,
  File "/usr/local/lib/python2.7/dist-packages/pip/req/req_set.py", line 646, in install
    **kwargs
  File "/usr/local/lib/python2.7/dist-packages/pip/req/req_install.py", line 803, in install
    self.move_wheel_files(self.source_dir, root=root)
  File "/usr/local/lib/python2.7/dist-packages/pip/req/req_install.py", line 998, in move_wheel_files
    isolated=self.isolated,
  File "/usr/local/lib/python2.7/dist-packages/pip/wheel.py", line 242, in move_wheel_files
    name, user=user, home=home, root=root, isolated=isolated
  File "/usr/local/lib/python2.7/dist-packages/pip/locations.py", line 183, in distutils_scheme
    i = d.get_command_obj('install', create=True)
  File "/usr/lib/python2.7/distutils/dist.py", line 845, in get_command_obj
    klass = self.get_command_class(command)
  File "/usr/local/lib/python2.7/dist-packages/setuptools/dist.py", line 430, in get_command_class
    self.cmdclass[command] = cmdclass = ep.load()
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2355, in load
    return self.resolve()
  File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2361, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
ImportError: No module named command.install
sam@sam:~$

sam@sam:~$ sudo pip install -U setuptools
The directory '/home/sam/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/sam/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting setuptools
  Downloading setuptools-18.5-py2.py3-none-any.whl (462kB)
    100% |████████████████████████████████| 462kB 1.3MB/s 
Installing collected packages: setuptools
  Found existing installation: setuptools 18.4
    Uninstalling setuptools-18.4:
      Successfully uninstalled setuptools-18.4
Successfully installed setuptools-18.5
sam@sam:~$ 
sam@sam:~$ sudo pip install protobuf --upgrade
The directory '/home/sam/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/sam/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting protobuf
  Downloading protobuf-2.6.1.tar.gz (188kB)
    100% |████████████████████████████████| 188kB 214kB/s 
Requirement already up-to-date: setuptools in /usr/local/lib/python2.7/dist-packages (from protobuf)
Installing collected packages: protobuf
  Found existing installation: protobuf 2.4.1
    Uninstalling protobuf-2.4.1:
      Successfully uninstalled protobuf-2.4.1
  Running setup.py install for protobuf
Successfully installed protobuf-2.6.1
sam@sam:~$ 

为了以后的参考,请注意 install -U 不是卸载而是升级。该命令的输出很令人困惑,因为它突出显示了一条消息“成功卸载 foo”。 - jwg

-1

-2

解决所有pip问题的最佳方法是重新安装Python 2.7.9并运行它。否则,您的确切问题可能会非常难以跟踪。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接