今晚我正在尝试安装名为"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