【发布时间】:2021-08-28 00:40:33
【问题描述】:
我已经用 setuptools 打包了一个 python 文件,不幸的是我在其他目录中导入项目时遇到了 FileNotFound。在脚本中导入文本文件的正确方法是什么?
项目结构:
main_folder/
├─ MANIFEST.in
├─ setup.py
├─ mypgk/
│ ├─ __init__.py
│ ├─ main.py
│ ├─ files/
│ │ ├─ somewhat.csv
这是我的 setup.py
from setuptools import setup, find_packages
setup(
name='mypkg',
version='0.0.1',
packages=find_packages(exclude=('test*', 'testing*'))
)
MANIFEST.in
recursive-include mypkg *.csv
main.py:
import csv
config_file = os.path.join('mypkg', 'files', 'somewhat.csv')
with open(config_file, 'r') as config_file:
reader = csv.reader(config_file)
在同一个目录下运行这个脚本是可以的,但是当我在其他目录上使用它时,提示FileNotFound错误,我错过了什么吗?
奇怪的是,当我输入 python setup.py sdist 时,它在分发中得到确认
copying MANIFEST.in -> mypkg-0.0.1
copying setup.py -> mypkg-0.0.1
copying mypkg\main.py -> mypkg-0.0.1\mypkg
copying mypkg\__init__.py -> mypkg-0.0.1\mypkg
copying mypkg.egg-info\PKG-INFO -> mypkg-0.0.1\mypkg.egg-info
copying mypkg.egg-info\SOURCES.txt -> mypkg-0.0.1\mypkg.egg-info
copying mypkg.egg-info\dependency_links.txt -> mypkg-0.0.1\mypkg.egg-info
copying mypkg.egg-info\top_level.txt -> mypkg-0.0.1\mypkg.egg-info
copying mypkg\files\somewhat.csv -> mypkg-0.0.1\mypkg\files
但是进入目录,我没有找到文件夹
【问题讨论】:
-
os.dirname(__file__) + '/files/somewhat.csv -
模块 'os' 没有属性 'dirname' ?试过 os.path.dirname 及其没有这样的文件或目录
-
试试
os.path.dirname(__file__) -
是的,我做了,但同样的错误没有这样的文件或目录
标签: python setuptools setup.py