当前位置: 代码迷 >> python >> `console_scripts`如何从`package_data`访问文件
  详细解决方案

`console_scripts`如何从`package_data`访问文件

热度:110   发布时间:2023-06-16 10:04:59.0

console_scripts创建为entry_points ,如何访问包中的数据文件( package_data )?

setup(
    # other stuff
    entry_points={
        'console_scripts': [
            'runme = mypackage.a_py_file:a_function_within_the_py_file',
        ]
    }
)

目录结构:

├── mypackage
│   ├── __init__.py
│   └── a_py_file.py
├── requirements.txt
├── setup.py
└── data 
    ├── a.data
    └── b.data

用于处理console_scripts Python文件:

# a_py_file.py
def a_function_within_the_py_file:
    # HOW TO READ a.data FILE HERE

改变cwd怎么样?

import os
os.chdir(__file__)

conftest.py听起来像个好地方。 或者附加到test命令的文件。

所以这就是我所做的并且它有效:

import os
import pkg_resources

os.chdir(pkg_resources.get_distribution('mypackage').location)
# running as if the script is invoked from project's root