Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.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';s etree模块_Python_Linux_Lxml_Portability_Cx Freeze - Fatal编程技术网

将python脚本转换为使用lxml';s etree模块

将python脚本转换为使用lxml';s etree模块,python,linux,lxml,portability,cx-freeze,Python,Linux,Lxml,Portability,Cx Freeze,在2013年9月,我和此人的问题基本相同 相关问题: (有人通过编辑cx冻结代码找到了修复方法,但没有深入解释),(不知道如何在Linux中打开鸡蛋) 在我有50个名声之前,我是不允许评论的,所以我发布了这个帖子。我正在使用cx_freeze的4.3.1来冻结以下模块: import sys import getopt from time import gmtime, strftime, time from os.path import exists from lxml import etree

在2013年9月,我和此人的问题基本相同

相关问题: (有人通过编辑cx冻结代码找到了修复方法,但没有深入解释),(不知道如何在Linux中打开鸡蛋)

在我有50个名声之前,我是不允许评论的,所以我发布了这个帖子。我正在使用cx_freeze的4.3.1来冻结以下模块:

import sys
import getopt
from time import gmtime, strftime, time
from os.path import exists
from lxml import etree
My setup.py脚本:

import sys
from cx_Freeze import setup, Executable

#build_exe_options = {"packages": ["sys","getopt","time","os","lxml"]}

build_exe_options = {"packages": ["sys","getopt","time","os","lxml","BeautifulSoup","lxml.html.soupparser","lxml.html.html5parser","lxml.html.diff","lxml.ElementInclude"]}

setup(
    name = "cmpxml",
    version = "r13",
    description = "",
    options = {"build_exe": build_exe_options},
    executables = [ Executable("cmpxml.py", base = None) ] )
我跑

python setup.py build_exe

python setup.py构建

并接收以下信息:

? cjkcodecs.aliases imported from BeautifulSoup
? html.entities imported from lxml.html.soupparser
? html5lib imported from lxml.html.html5parser
? iconv_codec imported from BeautifulSoup
? lxml.html.escape imported from lxml.html.diff
? urllib.parse imported from lxml.ElementInclude
? urllib.request imported from lxml.ElementInclude
当运行我编译的程序时,它在尝试导入lxml时失败,因此我觉得上面的消息在调试编译时是至关重要的

我是否做错了什么,或者这是cx冻结的问题?我的LXML模块是使用pip安装的(因此不需要PYTHONPATH),我在ubuntu13.10上使用python2.7


Nuitka 0.4.7:

其他问题,但相关的:巧合的是,我也有一个与Nuitka类似的问题

/usr/share/nuitka/bin/nuitka cmpxml.py --exe --recurse-all --execute
将正确编译,但在运行时。/cmpxml将无法找到lxml模块


PyInstaller 2.1:

还尝试将pyinstaller与包含hook-lxml.etree.py、hook-lxml.objectify.py、hook-xml.etree.celementree.py和running的hooks目录一起使用

pyinstaller --additional-hooks-dir=hooks/ cmpxml.py
在dist/cmpxml/cmpxml中运行二进制文件时,它仍然无法检测到lxml。build目录中的警告文件包含这些丢失的模块,从pyinstaller git下载所有钩子并不能解决问题

$ cat build/cmpxml_noetree/warncmpxml_noetree.txt
W: no module named msvcrt (conditional import by subprocess)
W: no module named msvcrt (delayed import by getpass)
W: no module named _dummy_threading (top-level import by dummy_threading)
W: no module named cl (delayed, conditional import by aifc)
W: no module named rourl2path (conditional import by urllib)
W: no module named nt (conditional import by __main__)
W: no module named nt (conditional import by pyi_os_path)
W: no module named _subprocess (conditional import by subprocess)
W: no module named cl (delayed import by aifc)
W: no module named _scproxy (conditional import by urllib)
W: no module named org (top-level import by pickle)
W: no module named EasyDialogs (conditional import by getpass)
W: no module named SOCKS (top-level import by ftplib)
W: no module named _winreg (delayed import by urllib)
W: no module named nt (top-level import by ntpath)
W: no module named msvcrt (conditional import by getpass)
W: no module named _winreg (top-level import by mimetypes)
W: no module named org (top-level import by copy)
W: no module named _emx_link (conditional import by os)
奇怪的是,在这个警告文件中甚至没有提到lxml。由于某些原因,它只是不包括在内



任何帮助都将不胜感激。Nuitka、pyinstaller、freeze、cx freeze,所有这些似乎都是很棒的程序,但似乎对我不起作用

我的一位朋友告诉我,问题是由于缺少inspect模块的导入

cx freeze的正确命令用于编译上述内容:

cxfreeze cmpxml.py --target-dir cmpxml --include-modules=sys,getopt,time,os,inspect,lxml.etree,lxml._elementpath,gzip,encodings.utf_8,encodings.ascii

此外,对于那些在谷歌上搜索这个问题的人来说。
OP使用了Nuitka 4.3.1,但在Nuitka 0.5.1中,问题似乎已经解决了

您在cx_Freeze中显示的“错误”是警告,而不是错误-当您尝试运行它生成的程序时,是否会出现错误?我知道它们是警告,但由于在尝试运行它生成的程序时它不起作用,我试图显示尽可能多的输出以调试该情况。您是否也可以显示运行该程序时出现的错误?我相信此问题是由于缺少导入inspect模块造成的。您有更多详细信息吗?在cx_Freeze中很可能修复它,但很难知道问题出在哪里。我使用的是cxFreeze的4.3.1。一定是打字错误。我使用的是0.4.7版。我将试用新版本,看看是否有效。