问题描述
将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
1楼
改变cwd
怎么样?
import os
os.chdir(__file__)
conftest.py
听起来像个好地方。
或者附加到test
命令的文件。
2楼
所以这就是我所做的并且它有效:
import os
import pkg_resources
os.chdir(pkg_resources.get_distribution('mypackage').location)
# running as if the script is invoked from project's root