使用 pip 在 Mac 上安装 tweepy - 错误消息



我最近将笔记本电脑从Microsoft切换到Apple(2015 MacBook Pro),并且我一直在成功安装诸如Nlkt之类的python库,没有任何问题。

现在我一直在尝试安装 tweepy,似乎收到大量不同的错误消息。

尝试后,我pip install tweepy[错误消息在我的终端中说"语法无效">],我在这里做了一些研究并尝试了以下解决方案:

import pip
>>> package_name='tweepy' 
>>> pip.main(['install',package_name])
OSError: [Errno 1] Operation not permitted: '/var/folders/t1/4g62trws5812jb97vvw5kp900000gn/T/pip-yabtGc-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info'  
2
>>> 

如您所见,它仍然无法正常工作...

我也尝试了sudo pip install tweepy,它提出了以下消息:

目录 '/Users/MYNAME/Library/Caches/pip' 或其父目录不属于当前用户,并且缓存轮已被禁用。 检查该目录的权限和所有者。如果使用 sudo 执行 pip,您可能需要 sudo 的 -H 标志。

需求已经满足:在 ./Library/Python/2.7/lib/python/site-packages
已经满足要求:6>=1.7.3 in ./Library/Python/2.7/lib/python/site-packages (来自 tweepy)
要求已经满足:requests-oauthlib>=0.4.1 in ./Library/Python/2.7/lib/python/site-packages (来自 tweepy)

要求已满足:requests>=2.4.3 in ./Library/Python/2.7/lib/python/site-packages (来自 tweepy)
已满足要求:./Library/Python/2.7/lib/python/site-packages 中的 oauthlib>=0.6.2(来自 requests-oauthlib>=0.4.1->tweepy)
已满足要求:urllib3<1.22,>=1.21.1 in ./Library/Python/2.7/lib/python/site-packages (来自 requests>=2.4.3->tweepy)
已满足的要求: idna<2.6,>=2.5 in ./Library/Python/2.7/lib/python/site-packages (来自 requests>=2.4.3->tweepy)
已满足要求:./Library/Python/2.7/lib/python/site-packages 中的 certifi>=2017.4.17(来自 requests>=2.4.3->tweepy)
已满足要求:./Library/Python/2.7/lib/python/site-packages 中的 chardet<3.1.0,>=3.0.2(来自 requests>=2.4.3->tweepy)

当我尝试将 tweepy 导入空闲时,它说"没有名为 tweepy 的模块">

对不起我冗长的解释,但我越来越绝望了......

非常感谢您的帮助!!

一种解决方案是使用 virtualenv。

简而言之,virtualenv 在与计算机的 python 安装不同的文件夹中创建了一个单独的 python 实例。 这允许轻松安装软件包,并帮助您更好地管理依赖项,而不是使用 pip 全局安装所有内容。

我该怎么做?

首先,安装虚拟环境

$ pip install virtualenv

接下来,创建一个虚拟环境。 以下命令将在您执行此命令的目录中名为"foo"的文件夹中创建一个 python 实例。

$ virtualenv foo

现在,每当您需要安装某些东西时,请使用位于foo/bin/pip的 pip 和位于foo/bin/python的 python .

$ foo/bin/pip install tweepy

您可以通过 python 解释器对此进行测试:

$ foo/bin/python
Python 2.7.10 (default, Feb  6 2017, 23:53:20) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import tweepy 

你为什么要这样做?

如果使用 virtualenv,则不太可能遇到依赖关系问题。

例如,假设你做了一个python程序,叫做ProjectAAA,它使用LibraryXYZ的1.1版本。 几个月后,你想编写一个新的,完全不相关的python程序ProjectZZZ,它使用同一库的2.2.5版本。 当 LibraryXYZ 从 1.1 升级到 2.2.5 时,他们删除并重命名了您在 ProjectAAA 中使用的一些类和函数。 因此,如果您使用 pip 并安装到 Mac 上的主 python 实例,您将无法再运行 ProjectAAA,因为它依赖于版本 1.1,但您的计算机具有版本 2.2.5。

如果你使用virtualenv,你可以有两个独立的python实例,每个实例都有自己的pip和自己的软件包安装。 因此,ProjectAAA 的环境有 1.1 版,ProjectZZZ 的环境有 2.2.5 版,两者都可以在您的计算机上和平生活。

我使用OS X,我刚刚成功地在Python IDLE上安装了tweepy:

import pip
package_name='tweepy' 
pip.main(['install',package_name])

这很容易。

感谢您的规定;现在我可以继续我的第一次提取了。

从查看您的错误消息来看,您似乎已经拥有了它。

已经满足的要求:在 ./Library/Python/2.7/lib/python/site-packages 中 tweepy

我尝试复制您的问题(在 Python 2.7/3.5 中),但没有遇到任何问题,并且能够将其导入到 IDLE。

一个可能的解决方案可能是将 PATH 目录更改为错误消息中列出的目录。

export PYTHONPATH=$PYTHONPATH:./Library/Python/2.7/lib/python/site-packages

另一件事是考虑将来使用虚拟环境,以确保软件包安装中没有冲突。

  • 进一步说明:在Mac OS X上安装Python:virtualenv

最新更新