sys.path.insert在终端中无效

1 投票
2 回答
1095 浏览
提问于 2025-04-18 14:07

我写了一个Python脚本,这个脚本用到了我放在另一个文件夹里的几个库。为了能使用这些库,我在脚本的开头加了以下几行代码:

import sys  
sys.path.insert(1, 'library_dir') 

在我的Python开发环境中运行时,这样做是没问题的,但当我从终端运行代码时,它却无法导入我需要的库。
我该怎么解决这个问题呢?

2 个回答

0

在运行 Python 脚本之前,需要设置一个叫做 "PYTHONPATH" 的环境变量。这个变量可以告诉 Python 去哪里找它需要的文件。在 bash 这个命令行工具里,你可以这样设置:

$ export PYTHONPATH="/some/default/path:${HOME}/library_dir"

0

这是一个相对路径的问题。

你插入到 sys.path 的路径是相对于你运行脚本的地方的。你的开发环境(IDE)会从某个特定的文件夹运行这个脚本(可能是这个IDE中“项目”的文件夹)。如果你在命令行中从同样的文件夹运行它,应该就能正常工作。

另外,你也可以指定一个绝对路径:

Windows:

sys.path.insert(1, 'c:\\path\\to\\library_dir') 

*nix:

sys.path.insert(1, '/path/to/library_dir') 

撰写回答