访问python父折叠

2024-05-15 12:04:14 发布

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

我看过以前的答案,这些答案似乎表明我应该能够使用:

from .. import code

虽然它会产生这样的结果: ValueError:尝试在顶级包之外进行相对导入

虽然这似乎不起作用。我的文件结构如下:

^{pr2}$

我可以从铲运机负荷委员会使用:

from wigan import council

虽然来自议会,但在尝试加载时,以下各项都不起作用刮板.py公司名称:

from .. import scraper
from scraper.bot import scraper
from scraper.bot.scraper import scraper

任何帮助都会很好。谢谢:-)


Tags: 文件答案fromimportbotcodescraper结构
1条回答
网友
1楼 · 发布于 2024-05-15 12:04:14

我怀疑您遇到的问题是您运行的脚本位于包中。这是Python中最难支持的特性之一。当您直接运行脚本时,它会将当前路径放在Python搜索路径的开头。如果你在包裹里,这是错误的。在

要正确运行scrapper.py(如果这是您的脚本),您应该更改到顶层文件夹(位于scrapper/之上的任何文件夹),然后运行python -m scrapper.bot.scrapper。在

或者,如果您通过使用PYTHONPATH环境变量,或者通过将其(或适当的.pth文件)安装到site-packages文件夹,将该顶层文件夹添加到Python搜索路径,则当前目录限制将被放宽,您可以从任何位置运行脚本。在

如果您还要按名称从其他模块导入模块,那么将模块作为脚本运行还有其他问题。脚本将作为__main__导入,而不是作为其实际名称。如果您也按名称导入它,您将获得脚本的第二个副本,这可能意味着它无法按预期工作(如果模块中存在任何全局状态,则副本之间可能不一致)。这是经常建议脚本尽可能少做工作的原因之一(只需从另一个模块导入内容,然后运行它)。您可能也需要重构代码来实现这一点。在

相关问题 更多 >