python3 sys.path.append永久生效
在Python中,sys.path
是一个存储模块搜索路径的列表。当你导入一个模块时,Python从这些路径中搜索对应的模块文件。有时候我们需要手动添加新的路径到sys.path
中,以便让Python找到额外的模块。
然而,通过sys.path.append
添加的路径只在当前运行时有效,一旦程序结束,这些修改就会消失。如果我们希望添加的路径永久生效,即在其他Python会话中仍然可用,我们可以通过修改环境变量PYTHONPATH
来实现。
修改PYTHONPATH环境变量
PYTHONPATH
是一个环境变量,它存储了Python模块搜索路径。我们可以通过修改这个环境变量,让Python永久地认识新的模块路径。
- 首先,找到你的Python安装目录。假设你使用的是Python3,通常情况下,Python的安装目录为
/usr/lib/python3.x
或者/usr/local/lib/python3.x
。 -
然后,找到
site-packages
目录。site-packages
目录存放了Python安装的第三方库。一般情况下,site-packages
目录在Python安装目录下的lib
目录中。 -
将你希望添加到
sys.path
中的路径加入到PYTHONPATH
环境变量中。你可以在~/.bashrc
或者~/.bash_profile
文件中添加如下内容:
export PYTHONPATH=$PYTHONPATH:/path/to/your/custom/module
-
保存文件并执行
source ~/.bashrc
或者source ~/.bash_profile
,使修改生效。 -
最后,你可以在Python中验证
sys.path
是否包含了你添加的路径:
import sys
print(sys.path)
运行上述代码,你应该能够看到/path/to/your/custom/module
被成功添加到sys.path
中。这意味着你的自定义模块路径已经被Python认可,一旦你导入这个模块,Python就能找到它了。
示例代码
假设我们有一个自定义的模块my_module
,其中有一个函数hello()
:
# my_module.py
def hello():
print("Hello from custom module!")
我们将my_module.py
保存在/path/to/your/custom/module
目录下。
接下来,按照上述步骤修改PYTHONPATH
环境变量:
export PYTHONPATH=$PYTHONPATH:/path/to/your/custom/module
保存文件并执行source ~/.bashrc
或者source ~/.bash_profile
。
然后在Python中验证sys.path
:
import sys
print(sys.path)
最后,尝试导入my_module
并调用hello()
函数:
import my_module
my_module.hello()
运行上述代码,你应该能够看到输出为Hello from custom module!
,这说明我们成功地将自定义模块路径添加到了sys.path
中,使得Python能够正常找到并导入这个模块。
通过修改PYTHONPATH
环境变量,我们可以让sys.path
永久地包含我们自定义的模块路径,从而使Python在任何时候都能找到并导入这些模块。这种方法非常方便且灵活,适用于在多个Python会话中使用自定义模块。