使用'./subfolder/xxx.csv'无法从代码中的变量中找到使用 Sphinx 的子目录

问题描述 投票:0回答:0

这是我在 Windows 10 x64 中的文件夹树,我使用的是 conda python (3.9.16) 和 Sphinx 6.1.3:

├───TradeTracker
│   ├───docs
│   │   ├───_build
│   │   │   ├───doctrees
│   │   │   └───html
│   │   │       ├───_sources
│   │   │       └───_static
│   │   │           ├───css
│   │   │           │   └───fonts
│   │   │           └───js
│   │   ├───_static
│   │   └───_templates
│   └───tradetracker
│       ├───logs
│       │   └───__pycache__
│       ├───store
│       │   ├───archive
│       │   └───__pycache__
│       ├───summary
│       │   ├───archive
│       │   └───__pycache__
│       ├───to_import
│       │   ├───originals
│       │   ├───TWStatements_reference
│       │   └───__pycache__
│       └───__pycache__

my basedir 被设置在 /docs 下的 conf.py 文件中,当从那里打印时解析为: “C:\Users dmin\Documents\Python\TradeTracker radetracker”

我的主要代码文件是 tradetracker.py 它在那个 basedir

代码中的调用看起来像这样

tw_csvimport = './to_import/twimport.csv'
并且正常运行时可以很好地找到所有子文件夹,例如代码中的子文件夹。

但是当我运行 Sphinx 时,它给出了这些错误...

文件 "C:\Users dmin\Documents\Python\TradeTracker radetracker radetracker.py", 第 432 行,在 dfin = read_csv_to_dataframe(tw_csvimport, converters={'Value': lambda x: pd.to_numeric(x.replace(',', ''), errors='coerce')}) 文件 "C:\Users dmin\Documents\Python\TradeTracker radetracker radetracker.py", 第 82 行,在 read_csv_to_dataframe 中 dfin = pd.read_csv(csv_file_path, converters=converters) ... FileNotFoundError: [Errno 2] 没有这样的文件或目录: './to_import/twimport.csv'

我一直在研究 conf.py 中的各种配置,但它总是同一个问题,当前的 conf.py 有:

basedir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', 'TradeTracker', 'tradetracker'))

sys.path.insert(0, basedir)

如果我将 tradetracker.py 中的代码更改为完整路径 "C:\Users...",它确实有效,但这是一个 bodge 方法,我想知道如何正确解决这个问题。

我在搞砸时做了一些事情,让它解析到 to_import 文件夹和其他子文件夹,但是当它这样做时,它找不到模块 tradetracker.py,而是抛出了那个错误。我不记得我做了什么。

我在this post中阅读了建议,将

__init__.py
添加到所有文件夹并重组路径,但这对我也没有用。

在这一点上,我很难过。甚至 chatGPT 也被难住了,并不断重复相同的解决方案。

python python-sphinx
© www.soinside.com 2019 - 2024. All rights reserved.