使用pip安装Python模块

使用pip安装Python模块,python,import,module,scrapy,Python,Import,Module,Scrapy,我正在尝试安装一个名为Scrapy的模块。我是用电脑安装的 pip install Scrapy 我在我的/usr/local/lib/python2.7/site-packages中看到了“scrapy”文件夹,但是当我尝试在Python程序中导入它时,它说没有这个名称的模块。你知道为什么会这样吗 编辑:以下是pip命令的输出: Downloading/unpacking Scrapy Downloading Scrapy-0.20.0.tar.gz (745kB): 745kB

我正在尝试安装一个名为Scrapy的模块。我是用电脑安装的

pip install Scrapy
我在我的/usr/local/lib/python2.7/site-packages中看到了“scrapy”文件夹,但是当我尝试在Python程序中导入它时,它说没有这个名称的模块。你知道为什么会这样吗

编辑:以下是pip命令的输出:

    Downloading/unpacking Scrapy
  Downloading Scrapy-0.20.0.tar.gz (745kB): 745kB downloaded
  Running setup.py egg_info for package Scrapy

    no previously-included directories found matching 'docs/build'
Requirement already satisfied (use --upgrade to upgrade): Twisted>=10.0.0 in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): w3lib>=1.2 in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): queuelib in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): lxml in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): pyOpenSSL in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): cssselect>=0.9 in /usr/local/lib/python2.7/site-packages (from Scrapy)
Requirement already satisfied (use --upgrade to upgrade): zope.interface>=3.6.0 in /usr/local/lib/python2.7/site-packages (from Twisted>=10.0.0->Scrapy)
Requirement already satisfied (use --upgrade to upgrade): six>=1.4.1 in /usr/local/lib/python2.7/site-packages (from w3lib>=1.2->Scrapy)
Requirement already satisfied (use --upgrade to upgrade): setuptools in /usr/local/lib/python2.7/site-packages/setuptools-1.1.6-py2.7.egg (from zope.interface>=3.6.0->Twisted>=10.0.0->Scrapy)
Installing collected packages: Scrapy
  Running setup.py install for Scrapy
    changing mode of build/scripts-2.7/scrapy from 644 to 755

    no previously-included directories found matching 'docs/build'
    changing mode of /usr/local/bin/scrapy to 755
Successfully installed Scrapy
Cleaning up...
当我运行/usr/local/bin/scrapy时,我得到了命令和可用命令的用法。我注意到我的/usr/local/bin中有一个python2.7和python2.7-32,我记得因为Mavericks的问题安装了32位版本

下面是python/usr/local/bin/scrapy的输出:

Traceback (most recent call last): File "/usr/local/bin/scrapy", line 3, in <module> from scrapy.cmdline import execute ImportError: No module named scrapy.cmdline 
#!/usr/local/opt/python/bin/python2.7 from scrapy.cmdline import execute execute()

编辑:您可以强制pip安装到其他位置。详情如下:。如果您的系统上确实有额外的Python文件夹,也许您可以尝试将scrapy定向到这些文件夹,即使只是为了一个临时解决方案

您可以发布pip命令的输出吗?也许它在某个地方失败了

另外,您的机器上是否可能有两个版本的Python?Pip只安装到一个位置,但路径上的Python版本可能不同

最后,有时给pip的包名与用于导入的包名不完全相同。检查包的文档。我快速查看了一下,导入应该是小写的:

import scrapy

你是在用自制的还是MacPorts什么的?正如@J.F.Sebastian所说,听起来您在混合OSX附带的默认python和通过软件包管理器安装的python时遇到了问题。。。试试
/usr/local/opt/python/bin/python2.7-m scrapy
,看看是否会抛出一个
ImportError

如果这是可行的,那么你可能想考虑让Python可执行文件是默认的。类似于

别名python2.7=/usr/local/opt/python/bin/python2.7
,然后始终使用
python2.7
而不是默认的
python
。同样,您也可以将
python
指向
/urs/local…
位,但是如果出于某种原因需要系统(OS X提供的)python,您将无法轻松访问它。

如果您在Ubuntu上运行:

使用官方软件,它已经为您解决了所有依赖关系,并不断更新最新的bug修复


或者,即使它解决了您的问题,也最好在虚拟环境中安装python库,使用将库分开,尝试检查apt get安装日志以了解添加了哪些工具,然后删除scrapy python库并在虚拟环境中重新安装它。当所有其他操作都失败时,可以使用pip将环境变量PYTHONPATH(请参阅以获取帮助)设置为安装Scrapy的路径。(如果您不使用virtualenv,请指定,以便我们提供帮助,通常提供操作系统也是一个好主意)

安装在Python路径上的scrapy模块似乎是一个可执行文件,将为您引导scrapy项目目录

中的Python代码如下所示:

   #!/usr/bin/env python

   from scrapy.cmdline import execute
   execute()
它打算从命令行运行,而不是导入到您自己的Python项目模块中

根据,使用以下语法运行scrapy可执行文件:

scrapy startproject <your-project-name>
文档中有许多示例演示了如何创建和运行自己的spider、链接提取器等,以及如何操作使用应用程序检索的数据。它们分别演示了从scrapy包的子目录中导入的适当Python,以帮助您启动并运行


希望这能有所帮助。

您是执行了导入Scrapy还是导入Scrapy?我实际上两个都有导入错误。
sys.path
中是否有
/usr/local
路径?@Miles:如果
/path/to/Scrapy
显示了使用信息,但
python/path/to/Scrapy
引发了
导入错误,则至少有计算机上至少有两个
python
可执行文件,并且
pip
未安装到作为
python
提供的默认文件中。
head/usr/local/bin/scrapy
显示了什么?@Jud:“即使软件包本身没有安装在那里”是不正确的
scrapy
安装到
/usr/local/opt/…
中,否则
scrapy
命令将生成
importorror
,而不是使用信息。建议一种访问特定python可执行文件的简单方法。如果将
python2.7
别名定义为指向
#/usr/local/opt/python/bin/python2.7
那么添加
#就足够了/usr/bin/env python2.7
shebang添加到任何包含
import scrapy
的Python脚本中,或者从命令行启动
python2.7
。我将pip命令的输出添加到我的帖子中。据我所知,我只有python 2.7.5。我还尝试导入scrapy,但没有成功。结果表明,我通过自制安装的Python版本与我手动安装的Python版本相冲突。很高兴你找到了答案。我想我们所有人都说了非常相似的话,我们要确保scrapy使用了正确的python。
your-project-name/
scrapy.cfg
tutorial/
    __init__.py
    items.py
    pipelines.py
    settings.py
    spiders/
        __init__.py
        ...