NotADirectoryError: [WinError 267] Неверное имя каталога: - PullRequest
0 голосов
/ 08 июня 2018

Я использую python для вызова некоторого программного обеспечения для моделирования энергосистемы (CYME).Я создал файл .py для запуска симуляции, а затем пытался создать файл .exe, используя py2exe.Я не получаю никаких ошибок при запуске файла .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\\'

1 Ответ

0 голосов
/ 14 июня 2018

Ошибка "frozen importlib ...", скорее всего, вызвана использованием неподдерживаемой версии Python.Я подозреваю, что конвертер использует другую среду Python.

Если вы заставите свой конвертер напечатать его версию Python (без импорта tkinter или cympy), вы должны получить другую версию, отличную от той, которая правильно запускает скрипт.,Поддерживаемая версия 3.4, и есть проблемы, которые следует ожидать, если вы попытаетесь использовать другую версию.Это потому, что Python не один и тот же, под капотом, от одного выпуска к другому.Даже небольшая версия может что-то сломать.

Следующий скрипт, который может показаться очень простым, должен быть достаточно информативным для решения проблемы:

Python

import sys
print(sys.version)

Запустите этот скрипт в обеих средах и сравните вывод.Как только вы убедитесь, что используется правильная версия Python, вы можете протестировать версию Cyme, а также проверить import cympy.

Python

import cympy
print(cympy.version)

С этого момента все должно работать просто отлично.Если нет, это означает, что у вас возникли более глубокие проблемы в вашем собственном коде Python.

Однако очень странно, что вы можете захотеть преобразовать скрипт Python в исполняемый файл.Правильный способ выполнения инструкций Python из исполняемого файла - это интерфейс Python C Api.В противном случае интерпретатор Python более чем подходит для запуска сценария Python и должен быть предпочтительным.Если преобразование - это попытка скрыть код Python или предотвратить копирование, это, вероятно, не лучший подход, поскольку существуют простые инструменты, которые могут раскрыть скрипт Python внизу.Почему вы не хотите использовать python для сценария python?

Последующая ошибка, как уже отмечалось в комментариях, вероятно, является хорошим примером "не делай этого".Решение этой проблемы также может помочь, изменив поведение вашего скрипта, поэтому, возможно, он больше не будет пытаться это делать.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...