使用pyinstaller时出现python调用perl问题[已关闭]

cqoc49vn  于 2023-01-31  发布在  Perl
关注(0)|答案(1)|浏览(187)

9小时前关门了。
Improve this question
python/perl程序结构如下,

main.py包含控件和函数;

perl脚本,www.example.com将在www.example.com中调用该脚本 hdcheck.pl Which will be called in main.py

python函数是,

def CheckFileHeader(self,path,tlpath):
        cmd = "perl "+tlpath+" -in "+path
        print(cmd+"\n")
        subprocess.call(cmd)

www.example.com中的函数调用main.py

CheckFileHeader(input,"perl\\hdcheck.pl")

问题,
1.当我在cmd行中运行python www.example.com时,Perl脚本运行得很好; main.py in cmd line;
1.然而,www.example.com不工作(只是 Flink 和消失),当我使用pyinstaller将所有文件打包成一个exe文件在windows中(没有cmd模式) hdcheck.pl does not work(just flashed and disappeared) when I use pyinstaller to package all file into a exe file in windows(without cmd mode)
(pyinstaller-w--一个文件"E:/版本/示例网站")main.py")

jv4diomz

jv4diomz1#

你会错误地认为当前工作目录就是Python脚本所在的目录,当它们恰好相同时,它就可以工作,但这显然不是你可以依赖的。

import os

script_dir = os.path.dirname( os.path.realpath( __file__ ) )

hdcheck_path = script_dir + "/perl/hdcheck.pl"

作为构建绝对路径的替代方法,您可以使用script_dir作为subprocess.callcwd参数的值。
(我使用/而不是\,因为它更容易阅读。Windows接受\/作为路径分隔符。)

相关问题