指向文件位置时,在代码中使用sys.path[0]安全吗

2024-09-17 19:44:38 发布

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

我公司的一些python代码在某些文件路径中使用sys.path[0]。通常,每个人的sys.path[0]都指向c:\\<user.name>\\workspace,我相信我的sys.path过去也指向c:\\<user.name>\\workspace。但是,现在我的sys.path[0]是c:\\users\\<user.name>\\repos\\venv\\lib\\site-packages\\git\\ext\\gitdb,因此很明显,这些路径在我的本地计算机上是不正确的,并且会导致错误

我的问题是什么会导致我的本地sys.path发生这种变化,以及是否因为这种情况而使用sys.path是一种不好的做法。在这种情况下,我们应该使用什么

这是运行在flask服务器上的python代码的全部内容


Tags: 文件path代码name路径venvlibsys
1条回答
网友
1楼 · 发布于 2024-09-17 19:44:38

它是不安全的,因为正如它在评论中所说的那样,很多东西都可以修改sys.path的顺序

作为一种解决方法,您可以在workspace中导入一些文件,然后获取目录:

import something_in_workspace
workspace = os.path.dirname(something_in_workspace.__file__)

通常需要检索数据文件。更好的方法是打包项目并使用^{}。 见How to read a (static) file from inside a Python package?

相关问题 更多 >