首页 > 解决方案 > 使用 PEX 时无法引用本地 WSDL 文件

问题描述

我有一个关于 pex 构建的问题。所以我们有这个项目结构,我们正在尝试用它构建一个 pex 文件。它有一个需要在代码中引用的 WSDL 文件。无论我做什么,当我运行 pex 文件时,它都会引发异常: File Not Found 。有谁知道如何解决它?我对 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)))

标签: pythonpython-3.xpex

解决方案


欢迎来到 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 模块的更多信息


推荐阅读