如何在PyDev中引用项目来安装包

时间:2016-01-06 15:43:56

标签: python lxml pydev

我从中下载了lxml-3.4.4-cp27-none-win_amd64.whl http://www.lfd.uci.edu/~gohlke/pythonlibs/,然后将其放入D:\My Documents\lxml。之后,我打开了Windows CMD并将目录更改为D:\My Documents\lxml,然后执行了:

>>pip install --index-url http://www.lfd.uci.edu/~gohlke/pythonlibs/ lxml-3.4.4-cp27-none-win_amd64.whl
unpacking d:\my documents\lxml\lxml-3.4.4-cp27-none-win_amd64.whl
Installing collected packages: lxml
Successfully installed lxml
Cleaning up...

我现在如何在Eclipse / PyDev项目中引用它?

编辑:(越来越近)

https://pypi.python.org/pypi/lxml/3.5.0下载lxml-3.5.0.win-amd64-py2.7.exe(md5)

运行此exe,安装到Python目录:C:\Python27\

Eclipse / PyDev项目Python27LibSitePackages现在包含lxml包和lxml-3.5.0.py2.7.egg-info

按照下面@caot的建议,从C:\Python27\Lib\site-packages创建PyDev项目。该项目现在包含lxml包和lxml-3.5.0.py2.7.egg-info

在我想要使用lxml的项目中,我转到属性>项目参考,并通过选中框包括SitePackages项目。

仍然收到错误 NameError:全局名称' etree'未定义

转到项目属性>外部图书馆>添加源文件夹  C:\Python27\Lib\site-packages\lxml

仍然收到错误 NameError:全局名称' etree'未定义

编辑2:
C:\Python27\site-packages下,我看不到etree.dll。有:

etree.pyd
lxml.etree_api.h
lxml.etree.h
dtree_defs.h
etreepublic.pxd

编辑3: 答案似乎是:

  • 下载.exe(由@caot声明)
  • 请确保只有C:\Python27\Lib\site-packages应该在PYTHONPATH中,正如@Zabio Zadrozny指出的那样(通过Properites> PyDev-PYTHONPATH>外部库>添加源文件夹)
  • 重启Eclipse(如@caot所说)几次,直到需要。

2 个答案:

答案 0 :(得分:1)

Linux:下载lxml-3.5.0.tar.gz,然后运行:python setup.py install

Windows:安装lxml-3.5.0.win-amd64-py2.7.exe

$ python
Python 2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import lxml
>>> from lxml import etree
>>> etree.LXML_VERSION
(3, 5, 0, 0)
>>>

答案 1 :(得分:1)

一些细节:

  1. PYTHONPATH 条目应仅包含包含实际包的文件夹。

    即:这意味着" C:\ Python27 \ Lib \ site-packages \ lxml" 应该在 PYTHONPATH 中,只有" C:\ Python27 \ Lib \ site-packages" - 默认情况下应该在那里。

  2. 不要手动将任何内容复制到网站包中 - 执行pip安装时应该注意这一点(如果您手动复制,则可能是您正在制作内容pip继续安装时发生冲突)。

  3. 所以,简而言之:从一个干净的python开始,并做一个pip install lxml - 指向pythonlibs就像你做的那样获取whl(并且永远不会手动将任何东西复制到site-packages)并且事情应该没有做任何特别的事。