如何在 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:
答案好像是:
- 下载 .exe(如@caot 所述)
- 确保只有
C:\Python27\Lib\site-packages
应该在 PYTHONPATH
中,正如@Zabio Zadrozny 指出的那样(通过 Properites > PyDev-PYTHONPATH > External Libraries > Add source folder)
- 重新启动 Eclipse(如@caot 所说)几次,直到它需要。
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)
>>>
一些细节:
PYTHONPATH 条目应该只包含包含实际包的文件夹。
即:这意味着“C:\Python27\Lib\site-packages\lxml”应该 NOT 在 PYTHONPATH 中,只有“C: \Python27\Lib\site-packages" -- 默认情况下应该存在。
不要手动复制任何东西到 site-packages——做一个 pip 安装应该解决这个问题(如果你手动复制,你可能会在pip 继续安装它)。
所以,简而言之:从一个干净的 python 开始,然后执行 pip install lxml -- 指向 pythonlibs 就像你为获取 whl 所做的那样(永远不要手动复制任何东西到site-packages) 并且不需要做任何特别的事情就可以解决问题。
我从 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: 答案好像是:
- 下载 .exe(如@caot 所述)
- 确保只有
C:\Python27\Lib\site-packages
应该在PYTHONPATH
中,正如@Zabio Zadrozny 指出的那样(通过 Properites > PyDev-PYTHONPATH > External Libraries > Add source folder) - 重新启动 Eclipse(如@caot 所说)几次,直到它需要。
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)
>>>
一些细节:
PYTHONPATH 条目应该只包含包含实际包的文件夹。
即:这意味着“C:\Python27\Lib\site-packages\lxml”应该 NOT 在 PYTHONPATH 中,只有“C: \Python27\Lib\site-packages" -- 默认情况下应该存在。
不要手动复制任何东西到 site-packages——做一个 pip 安装应该解决这个问题(如果你手动复制,你可能会在pip 继续安装它)。
所以,简而言之:从一个干净的 python 开始,然后执行 pip install lxml -- 指向 pythonlibs 就像你为获取 whl 所做的那样(永远不要手动复制任何东西到site-packages) 并且不需要做任何特别的事情就可以解决问题。