MaC语言 Python - 导入错误:"No module named site"



今晚我正在尝试安装名为"requests"的包,并且已经开始在终端上摸索,在这类事情上没有太多直觉。

电脑是一台mac mini,osx版本10.9.4

在/Library/Python中,我有4个文件夹:2.3、2.5、2.6和2.7。
在/Applications中,我有"Python 2.7"one_answers"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      

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

 pip install requests

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

 Requirement already up-to-date: pip in /Library/Python/2.7/site-packages/pip-1.5.6-py2.7.egg
 Cleaning up...

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

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

 import base64
 import hmac
 import json
 import requests
 import time
 import urllib
 import os

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

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

*****系统路径列表:

系统路径['/Users/Mario/Desktop/pyak','/Users/Mario/Documents','/Library/Python/2.7/site packages/pip-1.5.6-py2.7.eg','/Library/Frameworks/python27.zip','Library/Frameworks/python2.7/lib/python2.7','-Library/FFrameworks/Pythn2.7/Versions/2.7/lib/python2.7/plat-mac','/Library/Frameworks/python2.7/Versions/2.7/lib/python2.7/plat-mac/lib scriptpackages','/Lebrary/Frameworks/python2.7/lib/pythn2.7/lib-tk','Library/Frameworks/Pythn2.7/Versions/2.7/lib/python2.7/lib-old','/Library/Frameworks/spython2.7.Versions/2.7/lib/python2.7.lib dynload','/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages','/Libraly/python2.7/site packages']

***另一个更新:

 host-210-117:~ Mario$ which python      
 /Library/Frameworks/Python.framework/Versions/2.7/bin/python

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

 host-210-117:~ Mario$ which pip       
 /usr/local/bin/pip        
 host-210-117:~ Mario$ pip       
 ImportError: No module named site       

***更改.bashrc 后

.bashrc:这是文件中的内容

export PATH="$PATH:$HOME/.rvm/bin"#将rvm添加到PATH中进行脚本编写
alias python=/Library/python/2.7/python

这是运行的输出:

  pip install requests      

host-210-117:~Mario$pip安装请求
下载/拆包请求
下载请求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行,在main中status=self.run(选项,args)
文件"/Library/Python/2.7/site packages/pip-1.5.6-py2.7.egg/pip/commands/install.py",第283行,正在运行requirement_set.install(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行,安装中requirement.install(安装选项、全局选项、*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)move_wheel_files中的文件"/Library/Python/2.7/site packages/pip-1.5.6-py2.7.egg/pip/req.py",第901行pycompile=self.pycompile,
move_wheel_files中的文件"/Library/Python/2.7/site packages/pip-1.5.6-py2.7.egg/pip/wheel.py",第215行clobber(source、lib_dir、True)
clobber中的文件"/Library/Python/2.7/site packages/pip-1.5.6-py2.7.egg/pip/wheel.py",第205行os.makedirs(destdir)
文件"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py",第157行,在makedirs中mkdir(名称,模式)
O错误:[Erno 13]权限被拒绝:"/Library/Python/2.7/site packages/requests"

将故障的调试日志存储在/Users/Mario/Library/Logs/pip.log

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

ModuleNotFoundError: No module named 'xxx'

最终通过解决

brew install python3
brew link python3
sudo python3 -m pip install xxx
// or `sudo python3 -m pip install -r requirements.txt`

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

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

pip是针对您下载的Python 2.7版本(您在Applications文件夹中看到的版本)安装的,不幸的是,您的shell的默认Python是与OSX捆绑的版本,并且没有安装pip。

IDLE还与您下载的Python捆绑在一起,这就是为什么它一直告诉您已经安装了pip,但它不能在shell中工作。

由于您可能正在使用从Python.org下载的Python作为您的"主要"Python(毕竟,它是您正在使用的带有IDLE的Python),因此您需要将您的shell环境设置为将此Python作为默认值。

最简单的方法是在.bashrc中添加一个变量,该变量创建一个别名python并将其指向正确的二进制文件。要做到这一点,请将此行添加到/Users/yourusername/.bashrc-默认情况下,带有.的文件是隐藏的,因此您必须在命令行中写入整个文件名才能打开它

alias python=/Library/Python/2.7/python

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

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

我用修复了我的版本

brew reinstall python

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

我读了一些书。命令行,

python3.10 -m pip install pandas

只要您更新了pip的最新版本,这将把pandas安装到您想要的特定python,否则它默认为在我的案例Anaconda中安装的最新的版本。您也可以更改python3.10以安装所需版本的python

site.py是一个默认由python运行的标准模块。它允许在代码开始运行之前调整sys.path并运行一些代码。它应该存在于标准的图书馆中,而且很难以某种方式缺席。但是,您可以通过将-S开关传递给python来禁用模块的自动导入。

无论如何,您应该以某种方式检查模块无法导入的原因。尝试检查sys.path列表。

您正试图在'/Library/Python/2.7/site packages/requests'中安装该包,但它需要root权限才能安装

$ sudo pip install requests
sudo easy_install pip
sudo pip install requests

最新更新