gpt4 book ai didi

Python-处理多个目录中的文件

转载 作者:行者123 更新时间:2023-12-04 05:09:38 27 4
gpt4 key购买 nike

我意识到这可能被认为是其他一些问题的重复问题,但我现在已经花了一个多小时阅读各种页面和文档,但仍然不明白这里发生了什么。

我正在尝试处理多个目录中的 python 文件;我基本上是这样的:

myproject/
__init__.py
some_file.py
some_data.dat
tests/
__init__.py
test_some_file.py
test_some_file.py顾名思义,它是从命令行运行的,旨在运行 some_file.py 中包含的代码。 ,并且需要导入它。但是,我似乎无法这样做。

我试过:
from myproject import some_file

还有
from .. import some_file

我确实设法使用 sys.path 让它运行了,但这似乎不是根据我阅读的内容做事的正确方法。

其次,当我让它运行时,使用 sys.path ,我收到一个错误,它找不到 some_data.datsome_file.py 使用.

最佳答案

这是 Python 程序员的一个长期问题。问题是 Python 不能很好地处理包内的脚本。在过去的几个版本中,情况有所改善,但很多时候它仍然没有做正确的事情。

我认为最好的答案是限制您在哪里运行 test_some_file.py来自,并使用 Python 解释器的 -m参数。即进入myproject上面的目录,然后运行 ​​python -m myproject.tests.test_some_file .这是唯一可以在不乱用 sys.path 的情况下工作的方法.

这将允许您的任一导入行正常工作。 PEP 8 目前建议始终使用绝对导入,因此第一个版本可能比使用 .. 的相对版本更好.

关于Python-处理多个目录中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15037925/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com