使用PEX使用pandas打包python脚本
发布时间:2020-12-20 13:08:13 所属栏目:Python 来源:网络整理
导读:我有一个简单的 python脚本依赖于熊猫.我需要用pex打包它,所以它没有依赖安装就执行了. import sysimport csv import argparseimport pandas as pd class myLogic(): def __init__(self): pass def loadData(self,data_file): return pd.read_csv(data_file,
我有一个简单的
python脚本依赖于熊猫.我需要用pex打包它,所以它没有依赖安装就执行了.
import sys import csv import argparse import pandas as pd class myLogic(): def __init__(self): pass def loadData(self,data_file): return pd.read_csv(data_file,delimiter="|") #command line interaction interface def processInputArguments(self,args): parser = argparse.ArgumentParser(description="my logic") #transactions file name parser.add_argument('-td','--data',type=str,dest='data',help='data file location' ) options = parser.parse_args(args) return vars(options) def main(self): options = self.processInputArguments(sys.argv[1:]) data_file = options["data"] data = self.loadData(data_file) print data.head() if __name__ == '__main__': ml = myLogic() ml.main() 我正在尝试使用pex来做到这一点,所以我做了以下事情: pex pandas -e myprogram.myLogic:main -o test1.pex 但是在运行生成的pex文件时出现此错误: Traceback (most recent call last): File ".bootstrap/_pex/pex.py",line 317,in execute File ".bootstrap/_pex/pex.py",line 250,in _wrap_coverage File ".bootstrap/_pex/pex.py",line 282,in _wrap_profiling File ".bootstrap/_pex/pex.py",line 360,in _execute File ".bootstrap/_pex/pex.py",line 418,in execute_entry File ".bootstrap/_pex/pex.py",line 435,in execute_pkg_resources File ".bootstrap/pkg_resources.py",line 2088,in load ImportError: No module named myLogic 我还尝试使用以下命令使用-c(switch for script)打包: pex pandas -c myprogram.py -o test2.pex 但也得到一个错误: Traceback (most recent call last): File "/usr/local/bin/pex",line 11,in <module> sys.exit(main()) File "/usr/local/lib/python2.7/dist-packages/pex/bin/pex.py",line 509,in main pex_builder = build_pex(reqs,options,resolver_options_builder) File "/usr/local/lib/python2.7/dist-packages/pex/bin/pex.py",line 486,in build_pex pex_builder.set_script(options.script) File "/usr/local/lib/python2.7/dist-packages/pex/pex_builder.py",line 214,in set_script script,','.join(self._distributions))) TypeError: sequence item 0: expected string,DistInfoDistribution found 解决方法
到目前为止,唯一对我有用的选择是创建一个包含px的pex解释器,然后使用python脚本运送它.这可以按如下方式完成:
pex pandas -o my_interpreter.pex 但是当构建python版本是UCS4并且运行的版本是UCS2时,这会失败 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |