如何使用argv在linuix上运行python脚本文件



任务是使用python脚本和2个参数从linuix机器的命令行打开一个名为t32的应用程序。但我面临以下错误:

sh-5.0$ python2 t32start.py --t32path /home/uif24704/t32 --target makena
Python not detected in PATH. Attempting to add python executable path to PATH
Added Python directory /usr/bin to PATH
Selected target: makena
Selected session: None
Traceback (most recent call last):
File "t32start.py", line 847, in <module>
generate_buildinfo()
File "t32start.py", line 318, in generate_buildinfo
tmpfile = os.getenv('TEMP') + os.sep + cmmfilename
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'

注意:我已经设置了TEMP路径

变量cmmfilename似乎未设置,因此当您将其与字符串值连接时会导致错误。您应该提供有关如何调用这个Python脚本以及这个脚本如何解析这些参数的代码。例如:python main.py --filename="/sample_dir"parser.add_argument("--filename", help="Working directory.")

您可能还想查找如何提供和读取命令行参数(例如,请参阅此问题(,因为这样做有多种方法

替换t32start.py行318 中的以下内容

tmpfile = os.getenv('TEMP') + os.sep + cmmfilename

带有

import tempfile
tmpfile = tempfile.gettempdir() + os.sep + cmmfilename

这使用了一种更通用的跨平台方法来获取临时目录。在当前代码中,os.getenv('TEMP'(返回None,不能与后面的字符串连接。

最新更新