Python “控制台”脚本如何从“包”数据访问文件`
创建Python “控制台”脚本如何从“包”数据访问文件`,python,python-2.7,setuptools,setup.py,Python,Python 2.7,Setuptools,Setup.py,创建控制台\u脚本作为入口点时,如何访问包中的数据文件(包数据) setup( # other stuff entry_points={ 'console_scripts': [ 'runme = mypackage.a_py_file:a_function_within_the_py_file', ] } ) 目录结构: ├── mypackage │ ├── __init__.py │ └── a_py
控制台\u脚本
作为入口点
时,如何访问包中的数据文件(包数据
)
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
处理控制台脚本的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
听起来是这样做的好地方。或者附加到测试
命令的文件。所以这就是我所做的,它起作用了:
import os
import pkg_resources
os.chdir(pkg_resources.get_distribution('mypackage').location)
# running as if the script is invoked from project's root
为什么不使用标准化的
python setup.py测试过程呢?@cel,这些测试不是单元测试。这是一些硒测试,我的用户没有技术知识。我想让他们更简单。这样,他们只需安装一个包并运行它,而不知道它是什么。就像许多支持命令行调用的python工具一样,你如何打包你的应用程序?似乎您在pythonpath中创建了测试
包,如果您想安装测试,最好进入mypackage
,这样可以减少冲突,更容易找到它们