【问题标题】:How to call a function using relative path from other place?如何使用来自其他地方的相对路径调用函数?
【发布时间】:2018-09-26 21:53:01
【问题描述】:

我正在编写一个 Python 包。像下面这样的索引

main.py
pkg
|--utils.py
|--files
   |--1.txt
   |--2.txt

我编写了一个函数来使用相对路径在utils.py 中加载文件1.txt。它在utils.py 中有效,但是当我在main.py 中调用该函数时失败。

我知道原因是相对路径已更改。我想知道如何在不改变相对路径的情况下解决它。

另外一个问题是上传到pipy时如何将文件添加到python包中。

【问题讨论】:

标签: python


【解决方案1】:

处理此问题的最佳方法是将files/* 分配为package_data 并使用pkg_resources.resource_filename。在您的setup.py 中,假设您的包名为“pkg”,在setup() 中添加以下内容:

package_data={'pkg': ['files/*']}

然后使用:

import pkg_resources
filepath = pkg_resources.resource_filename('pkg', '1.txt')

【讨论】:

    猜你喜欢
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    • 2011-12-03
    • 1970-01-01
    相关资源
    最近更新 更多