这是我在 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 也被难住了,并不断重复相同的解决方案。