我正在使用python调用一些电力系统仿真软件(CYME)。我创建了一个.py文件来运行模拟,然后我尝试使用py2exe创建一个.exe文件。运行.py文件时没有任何错误,并且得到了正确的输出。
但是在创建.exe文件并尝试运行它之后,我得到了以下输出。
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python34\lib\tkinter\__init__.py", line 1538, in __call__
return self.func(*args)
File "GUI.py", line 236, in run_scenarios
File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
File "<frozen importlib._bootstrap>", line 2226, in_find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1191, in _load_unlocked
File "<frozen importlib._bootstrap>", line 1161, in _load_backward_compatible
File "C:\Users\anil.chelladurai\Desktop\06_07\ADHCAT_version2D_Demo.py", line 17, in <module>
import cympy
File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1191, in _load_unlocked
File "<frozen importlib._bootstrap>", line 1161, in _load_backward_compatible
File "C:\Program Files (x86)\CYME\CYME\cympy\__init__.py", line 17, in <module>
os.chdir(cyme_dir)
NotADirectoryError: [WinError 267] The directory name is invalid: strong text'C:\\Users\\anil.chelladurai\\Desktop\\06_07\\dist\\library.zip\\'
发布于 2018-06-14 07:27:07
“冷冻进口品.”错误更可能是由不支持的python版本使用引起的。我怀疑转换器正在使用另一个python环境。
如果您让转换器打印其python版本(而不导入tkinter或cympy),则应该得到一个与正确运行脚本的版本不同的版本。支持的版本为3.4,如果尝试使用另一个版本,可能会出现问题。这是因为从一个版本到另一个版本,python是不一样的。即使是一个小版本也能破坏一些东西。
以下脚本虽然看起来很简单,但应该提供足够的信息来解决这个问题:
Python
import sys
print(sys.version)
在两个环境中运行该脚本并比较输出。一旦您确定正确的python版本正在使用,您可能需要测试Cyme版本,以及测试cympy的import
。
Python
import cympy
print(cympy.version)
从那时起,一切都应该正常运转。如果不是,这意味着您在自己的python代码中有更深层次的问题。
但是,非常奇怪的是,您可能希望将python脚本转换为可执行文件。从可执行文件执行python指令的正确方法是与python接口。否则,python解释器更适合运行python脚本,应该是首选的。如果转换是为了隐藏python代码或防止复制,那么这可能不是最好的方法,因为有一些简单的工具可以显示下面的python脚本。为什么不使用python作为python脚本呢?
正如评论已经指出的那样,随后的错误可能是“不要那样做”的好例子。通过改变脚本的行为,解决根本问题也会有所帮助,因此也许它不会再尝试这样做了。
祝好运!
https://stackoverflow.com/questions/50765802
复制相似问题