使用setup.py入口点路径

2024-05-13 18:22:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我真的不知道如何解决我的这个问题但是。。我是打包和setup.py的初学者。我在目录中有一个脚本

目录:

-root-
--setup.py (setup file in root dir)

-srcdir (dir with src code)
  --script.py (script in srcdir - WITH function main())

-confdir (dir with conf file)
  --config.conf (config itself)

我用python setup.py bdist_wheel安装了它,然后从setup.py文件所在的根目录pip install -e .安装了它。我的setup.py文件包含一个入口点entry_points={"console_scripts": {"fish=script:main"}}(这意味着我可以使用cmd从任何地方调用fish,并在script.py文件中运行main()函数)

现在我有一个问题。从script.py文件中,我正在读取config.conf。如果我从任何目录调用fish,我将无法访问配置文件bcs,我将使用script.py中的相对路径。有没有不使用绝对路径访问它的方法

实际上,我需要运行的脚本的相对路径,而不是使用cmd的目录。有办法吗

谢谢


Tags: 文件inpy目录脚本configmainconf
1条回答
网友
1楼 · 发布于 2024-05-13 18:22:36

如果配置文件是另一个Python模块,则只需导入它:

from ..confdir import config

但是,由于它似乎是其他类型的文件,因此可以使用__file__变量创建相对于script.py的路径:

from pathlib import Path

conf_path = Path(__file__).parents[1] / 'confdir' / 'config.conf'

别忘了在^{}中包含config.conf(+在setup.py中使用^{}

相关问题 更多 >