Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python lxml:未定义的变量etree_Python_Eclipse_Python 2.7_Lxml - Fatal编程技术网

Python lxml:未定义的变量etree

Python lxml:未定义的变量etree,python,eclipse,python-2.7,lxml,Python,Eclipse,Python 2.7,Lxml,稍作休息后,我将回到Python。以前可以工作的一些项目现在在lxml上有问题 我已经在本地安装了,并在Eclipse项目中安装了它 此项目在PyDev PYTHONPATH中具有以下内容: /${PROJECT\u DIR\u NAME} /${PROJECT\u DIR\u NAME}/src 在使用lxml的项目中,在项目引用中,我检查了lxml项目。 此项目中的文件具有: import lxml 黄色下划线中带有警告: 未使用的导入:lxml 对于这一行: from lxml impo

稍作休息后,我将回到Python。以前可以工作的一些项目现在在lxml上有问题

我已经在本地安装了,并在Eclipse项目中安装了它

此项目在PyDev PYTHONPATH中具有以下内容:
/${PROJECT\u DIR\u NAME}
/${PROJECT\u DIR\u NAME}/src

在使用
lxml
的项目中,在项目引用中,我检查了lxml项目。
此项目中的文件具有:

import lxml
黄色下划线中带有警告:
未使用的导入:lxml

对于这一行:

from lxml import etree
它给出了错误:
未解析的导入etree

这样的一句话:

kml = etree.Element("kml", nsmap = namespaces) 
出现错误:未定义的变量etree

该项目在PyDev PYTHONPATH中还包含以下内容:
/${PROJECT\u DIR\u NAME}
/${PROJECT\u DIR\u NAME}/src

我读过这个问题,但没有找到答案:

在Windows 10、64位计算机上。这在使用Windows 7的同一台计算机上不是问题。不确定这是否是问题所在。我不这么认为

我在运行配置中找到了PYTHONPATH的值。它有lxml:

D:\Program Files\eclipse\plugins\org.python.pydev_3.9.2.201502050007\pysrc\pydev_sitecustomize;
D:\My Documents\eclipse\workspace2\StateDivision;
D:\My Documents\eclipse\workspace2\StateDivision\src;
C:\Python27\podbc64;
D:\My Documents\eclipse\workspace2\lxml;
D:\My Documents\eclipse\workspace2\lxml\src;
D:\My Documents\eclipse\workspace2\XlsxWriter;
C:\Python27\ArcGISx6410.3\DLLs;
C:\Python27\ArcGISx6410.3\lib;
C:\Python27\ArcGISx6410.3\lib\lib-tk;C:\Python27\ArcGISx6410.3;
C:\Python27\ArcGISx6410.3\lib\site-packages;
C:\Program Files (x86)\ArcGIS\Desktop10.3\bin64;
C:\Program Files (x86)\ArcGIS\Desktop10.3\ArcPy;
C:\Program Files (x86)\ArcGIS\Desktop10.3\ArcToolBox\Scripts
清理了项目,切换到Python 3.5,PYTHONPATH现在看起来如下:

D:\Program Files\eclipse\plugins\org.python.pydev_3.9.2.201502050007\pysrc\pydev_sitecustomize;
D:\My Documents\eclipse\workspace2\StateDivision;
D:\My Documents\eclipse\workspace2\StateDivision\src;
D:\My Documents\eclipse\workspace2\lxml;
D:\My Documents\eclipse\workspace2\lxml\src;
D:\My Documents\eclipse\workspace2\lxml\src\lxml;
C:\Python35-32\DLLs;
C:\Python35-32\lib;
C:\Python35-32;C:\Python35-32\lib\site-packages
使用etree仍然会得到相同的错误

编辑:


答案是不要使用source(使用python.exe windows安装程序)和使用lxml导入etree的
,不要
导入lxml

您没有将
etree
模块作为全局名称导入模块中,只有
lxml
包本身。您需要从
lxml
包导入
etree
模块:

from lxml import etree

如果
import lxml
起作用,但
from lxml import etree
失败,则您的路径中可能有另一个
lxml.py
文件屏蔽包,或者您正试图使用未编译的源发行版。使用:

import lxml
print(lxml.__file__)
查找并重命名有问题的文件

  • 如果它指向
    lxml.py
    则删除或重命名该文件
  • 如果它指向
    /src/lxml/\uuuu init\uuuuuuu.py
    ,则您正在尝试使用未编译的源代码分发。您必须编译Python扩展代码,或者找到一个二进制发行版供您的平台安装

@AlLelopath:您的路径中有一个名为
lxml
的不同模块。您所说的“路径”是指路径还是蟒蛇路径?如果我查看系统环境变量,则没有定义PYTHONPATH。另外,PATH没有任何python引用。@AlLelopath:python模块搜索路径(包括当前本地工作目录)。Python设置了一个标准的模块搜索路径。您建议的print语句显示如下:D:\My Documents\eclipse\workspace2\lxml\src\lxml\uuu init\uuu.pyc,这是我在问题中提到的项目的位置。@AlLelopath:您不能只使用源发行版。lxml包含一个已编译的Python扩展;您需要自己编译它(在Windows上这是一项相当复杂的任务),或者找到一个二进制发行版进行安装。