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

How to refer a project to install package in 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: global name 'etree' is not defined

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

仍然得到错误NameError: global name 'etree' is not defined

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

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

编辑 3: 答案好像是:

Linux: 下载 lxml-3.5.0.tar.gz, 运行: python setup.py 安装

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. PYTHONPATH 条目应该只包含包含实际包的文件夹。

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

  2. 不要手动复制任何东西到 site-packages——做一个 pip 安装应该解决这个问题(如果你手动复制,你可能会在pip 继续安装它)。

所以,简而言之:从一个干净的 python 开始,然后执行 pip install lxml -- 指向 pythonlibs 就像你为获取 whl 所做的那样(永远不要手动复制任何东西到site-packages) 并且不需要做任何特别的事情就可以解决问题。