Mac - Python - 导入错误:"没有名为site的模块"

use*_*456 10 python macos pip importerror python-requests

今晚我试图安装一个名为"请求"的软件包并开始在终端上摸索,并且在这类事情上没有太多的直觉.

计算机是mac mini,osx版本10.9.4

在/ Library/Python我有4个文件夹:2.3 2.5 2.6和2.7.
在/应用程序我有"Python 2.7"和"Python 3.4"
我可以打开IDLE并键入8 + 8并且我得到16就好了.

这是我在终端中遇到的错误:

 host-210-117:~ Mario$ python       
 ImportError: No module named site       

 host-210-117:~ Mario$ pip       
 ImportError: No module named site      
Run Code Online (Sandbox Code Playgroud)

我的目标是在终端中运行此命令:

 pip install requests
Run Code Online (Sandbox Code Playgroud)

我相信pip已经安装好了.我在IDLE中运行文件"get-pip.py",这就是它所说的:

 Requirement already up-to-date: pip in /Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg
 Cleaning up...
Run Code Online (Sandbox Code Playgroud)

这可能与路径有关?我将非常感谢一些指导/提示/提示,谢谢!

哦,还有一些可能有助于解决这个问题的信息.这是我正在运行的程序的前几行:

 import base64
 import hmac
 import json
 import requests
 import time
 import urllib
 import os
Run Code Online (Sandbox Code Playgroud)

这给了我IDLE中的这个错误(所以我猜它导入前几个包没有问题?):

 >>> 

 Traceback (most recent call last):
   File "/Users/Mario/Desktop/pyak/pyak.py", line 4, in <module>
     import requests
 ImportError: No module named requests
 >>> 
Run Code Online (Sandbox Code Playgroud)

* 系统路径列表:

sys.path ['/ Users/Mario/Desktop/pyak','/ Users/Mario/Documents','/ Library /Python/2.7/site-package/download1.5.6-py2.7.egg',' /Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip','/ Library/Frame /Python.framework/Version/1.7/lib/python2.7','/ Library/Frame /Python.framework /Versions/2.7/lib/python2.7/plat-darwin','/ Library/Frame /Python.framework/Version/7.7/lib/python2.7/plat-mac','/ Library/Frame /Python.framework /Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages','/ Library/Frame /Python.framework/Version/1.7/lib/python2.7/lib -tk','/ Library/Frameworks /Python.framework/Versions/2.7/lib/python2.7/lib-old','/ Library/Frame /Python.framework/Version/7.7/lib/python2.7/lib-dadload','/ Library/Frameworks /Python.framework/Versions/2.7/lib/python2.7/site-packages','/ Library /Python/2.7/site-package']

*另一个更新:

 host-210-117:~ Mario$ which python      
 /Library/Frameworks/Python.framework/Versions/2.7/bin/python
Run Code Online (Sandbox Code Playgroud)

*多一点信息(这应该发生吗?)

 host-210-117:~ Mario$ which pip       
 /usr/local/bin/pip        
 host-210-117:~ Mario$ pip       
 ImportError: No module named site       
Run Code Online (Sandbox Code Playgroud)

*更改.bashrc后

.bashrc:这是文件中的内容

export PATH ="$ PATH:$ HOME/.rvm/bin"#将RVM添加到PATH以获取脚本
别名python =/Library/Python/2.7/python

这是运行的输出:

  pip install requests      
Run Code Online (Sandbox Code Playgroud)

host-210-117:~Mario $ pip install requests
下载/解包请求
下载请求-2.4.1-py2.py3-none-any.whl(458kB):458kB已下载
安装收集的包:请求
清理...
例外:
回溯(最近一次调用最后一次):
文件"/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip/basecommand.py",第122行,主状态= self.run (options,args)
运行require_set.install文件"/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip/commands/install.py",第283行(install_options, global_options,root = options.root_path)
文件"/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip/req.py",第1435行,在install requirement.install(install_options)中,global_options,*args,**kwargs)
文件"/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip/req.py",第671行,安装self.move_wheel_files (self.source_dir,root = root)文件"/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip/req.py",第901行,在move_wheel_files pycompile = self中. pycompil e,
文件"/Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip/wheel.py",第215行,在move_wheel_files clobber(source,lib_dir,True)
文件中"/ Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg/pip/wheel.py",第205行,在clobber os.makedirs(destdir)
文件"/ System/Library/Frameworks/Python .framework/Versions/2.7/lib/python2.7/os.py",第157行,在makedirs中mkdir(名称,模式)
OSError:[Errno 13]权限被拒绝:'/Library /Python/2.7/site-package /要求'

在/Users/Mario/Library/Logs/pip.log中存储失败的调试日志

Bur*_*lid 5

据我所知,您的系统上有三个版本的Python。

  • OSX附带的一个 /Library/Frameworks/Python.framework/Versions/2.7/
  • 来自python.org的Python 2.7 /Library/Python/2.7/site-packages
  • 来自python.org的Python 3.4

pip是针对您下载的Python 2.7版本(在“应用程序”文件夹中看到的)安装的,不幸的是,shell 的默认Python是与OSX捆绑在一起的Python,并且那里没有安装pip。

IDLE还与您下载的Python捆绑在一起,这就是为什么它会不断告诉您已安装pip的原因,但它在shell中不起作用。

由于您可能会将从python.org下载的Python用作“主要” Python(毕竟,它是您所使用的带有IDLE的Python),因此您需要将外壳环境设置为默认指向该Python。

最简单的方法是在其中添加变量,.bashrc以创建别名python并将其指向正确的二进制文件。为此,请将此行添加到/Users/yourusername/.bashrc- .默认情况下处于隐藏状态的文件,因此您必须在命令行中输入整个文件名才能打开它。添加以下行:

alias python=/Library/Python/2.7/python
Run Code Online (Sandbox Code Playgroud)

保存文件,然后关闭所有终端窗口并再次打开。现在键入pip,它应该可以正常工作,然后您可以继续安装请求。

为了将来参考,请尝试使用一个版本的Python。我个人忽略了捆绑版本brew,而是使用的捆绑版本,但是您可以坚持使用从python.org下载的Python。


Daa*_*tje 5

我修复了我的:

brew reinstall python

它修复了我所有破碎的路径。我想我用一个损坏的 brew 包破坏了它,这个包有错误的 python 版本依赖或类似的东西。


小智 5

我遇到了同样的问题,错误信息是:

ModuleNotFoundError: No module named 'xxx'
Run Code Online (Sandbox Code Playgroud)

并最终解决了

brew install python3

brew link python3

sudo python3 -m pip install xxx
// or `sudo python3 -m pip install -r requirements.txt`
Run Code Online (Sandbox Code Playgroud)