【问题标题】:The application can not find a path to a file after build project using setuptools使用 setuptools 构建项目后,应用程序找不到文件路径
【发布时间】:2020-08-30 00:46:05
【问题描述】:

我正在尝试使用 setuptools 构建一个项目。在我的项目中出现必不可少的config.yaml 文件。我是这样指定的:

setup=(
# some stuff
    include_package_data=True,
    package_data={
        "": ["*.yaml"]
    },
# some remains stuff
)

但我在找不到config.yaml 时遇到问题。它发生在我启动应用程序时。

FileNotFoundError: [Errno 2] No such file or directory: 'D:\\github\\Cats_Queue_Management_System\\env\\lib\\site-packages\\kitty_getter-1.0-py3.8.egg\\application\\config.yaml'

但是,它已被复制。 (正如我正确理解的那样)。

copying build\lib\application\config.yaml -> build\bdist.win32\egg\application

python代码中的文件交互:

# some stuff
default_file = Path(__file__).parent.parent / 'config.yaml'
    with open(default_file, 'r') as f:
        config = yaml.safe_load(f)
# some remains stuff

项目安排如下:

Project/
 +- app/
 |    +- __init__.py
 |    +- src/
 |    |   +- __init__.py
 |    |   +- config_processing.py
 |    +- entry_point.py
 |    +- config.yaml
 +- setup.py

或更完整的版本(文件交互发生在settings.py):

另外,我想指出,如果我直接启动应用程序,我的意思是python entry_point.py,它可以工作。

【问题讨论】:

    标签: python python-3.x build filepath setuptools


    【解决方案1】:

    因为那里不存在该文件...您的 .yaml 文件位于 D:\github\Cats_Queue_Management_System\application\config.yaml 您尝试在错误的路径上搜索它 p>

    试试这个看看:

    import os
    
    fileName = "config.yaml"
    appPath = r"D:\github"
    
    for r,d,f in os.walk(appPath):
        for file in f:
            if file == fileName:
                print(os.path.abspath(file))
            else:
                print(f"File {fileName} is not exist!")
    

    这将在所有 appPath 文件夹和子文件夹中搜索您的文件,如果找到将打印该文件的绝对路径,否则将告诉您该文件不存在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-04
      • 1970-01-01
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多