Невозможно ссылаться на локальный файл WSDL при использовании PEX - PullRequest
0 голосов
/ 20 февраля 2020

У меня вопрос по сборке pex. Итак, у нас есть эта структура проекта, и мы пытаемся создать из нее pex-файл. Он имеет файл WSDL, на который нужно ссылаться в коде. Независимо от того, что я делаю, при запуске файла pex выдается исключение: файл не найден. У кого-нибудь есть идеи как это исправить? Я довольно новичок в Python.

Ниже приведена структура папок -

Main_Folder
  Util
    util1.py
      main.py
        WebService.xml

Я пробовал это:

path = os.path.join(os.path.abspath(__file__), 'WebService.xml')
url = urllib.parse.urljoin('file:', urllib.request.pathname2url(os.path.abspath(path)))

1 Ответ

0 голосов
/ 20 февраля 2020

Добро пожаловать в StackOverflow. Как указывает ошибка, путь задан неправильно.

os.path.abspath(__file__) -> Дает вам абсолютный путь к файлу. Если я запускаю этот код из файла с именем main.py, я получаю следующий вывод:

C:\Users\User1\Desktop\main.py

Пример os.path.join

# Path 
path = "/home"

# Join various path components  
print(os.path.join(path, "User/Public/", "Documents", ""))

Выходы

/home/User/Public/Documents/ -> Как вы можете видеть, он присоединяется к каталогам.

Так что теперь вы должны увидеть проблему, которая у вас есть. Ваша переменная пути будет содержать что-то вроде этого C:\Users\User1\Desktop\main.py\WebService.xml

Так что просто измените его на этот путь `path = os.path.abspath ('WebService. xml')

Вы можете прочитать больше о модуле os здесь

...