Python中sys.path.append和os.environ["PATH"]及export PATH几者区别

本文详细介绍了Python中sys.path的使用方法,如何临时添加Python搜索路径;探讨了os.environ['PATH']在临时设置Linux操作系统环境变量的应用,以及export PATH命令在系统环境变量持久化配置中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • sys.path.append

sys.path其实是Python的搜索路径集

>>> import sys
>>> sys.path
['', 'C:\\Python\\python36.zip', 'C:\\Python\\DLLs', 'C:\\Python\\lib', 
'C:\\Python', 'C:\\Python\\lib\\site-packages']
>>>

如果要动态添加Python路径,可以使用append方法

>>> import sys
>>> sys.path.append("D:\\django\\web")
>>> sys.path
['', 'C:\\Python\\python36.zip', 'C:\\Python\\DLLs', 'C:\\Python\\lib', 
'C:\\Python', 'C:\\Python\\lib\\site-packages', 'D:\\django\\web']
>>>

备注: 上面的添加只是临时添加,如果退出当前会话,或者当前的shell,就会消失。

  • os.environ['PATH']

os.environ是一个字典,一系列的键、值对存储在该字典中,系统环境信息全部存储在该字典中

>>> import os
>>> os.environ.keys()
['LNKEVN', 'TMP', 'COMPUTERNAME', 'USERDOMAIN', 'PSMODULEPATH', 'COMMONPROGRAMFILES', 'PROCESSOR_IDENTIFIER', 'PROGRAMFILES', 'PROCESSOR_REVISION', 'SYSTEMROOT', 'PATH', '_DFX_INSTALL_UNSIGNED_DRIVER', 'PROGRAMFILES(X86)', 'WINDOWS_TRACING_FLAGS', 'TEMP', 'COMMONPROGRAMFILES(X86)', 'PROCESSOR_ARCHITECTURE', 'ALLUSERSPROFILE', 'LOCALAPPDATA', 'HOMEPATH', 'JAVA_HOME', 'PROGRAMW6432', 'USERNAME', 'WORKON_HOME', 'LOGONSERVER', 'PROMPT', 'SESSIONNAME', 'PROGRAMDATA', 'PATHEXT', 'FP_NO_HOST_CHECK', 'WINDIR', 'WINDOWS_TRACING_LOGFILE', 'HOMEDRIVE', 'SYSTEMDRIVE', 'COMSPEC', 'NUMBER_OF_PROCESSORS', 'APPDATA', 'PROCESSOR_LEVEL', 'COMMONPROGRAMW6432', 'OS', 'PUBLIC', 'USERPROFILE']
>>>

os.environ('环境变量名称')  = "环境变量值",常见的值如下:

  • os.environ['HOMEPATH']             # 当前用户主目录
  • os.environ['TEMP']                       # 临时目录路径
  • os.environ[PATHEXT']                  # 可执行文件
  • os.environ['SYSTEMROOT']        # 系统主目录
  • os.environ['LOGONSERVER']      # 机器名
  • os.environ['PROMPT']                  # 设置提示符
  • os.environ['PATH']                        # 系统环境信息

此外可使用os.environ["PATH"] += "新系统环境值",来添加新环境信息。

>>> import os
>>> os.environ["PATH"] += "D:\\ENVS"
>>> os.environ["PATH"]
'C:\\Python27\\;C:\\Python27\\Scripts;......;D:\\ENVS'
>>>

备注: 通过上面的方式添加也只是临时性添加,退出会话后自然恢复原来的值。

  • export PATH

通过export PATH=$PATH:/NewDir可以临时设置系统环境变量,如果要长久生效,必须将export语句放置在/etc/profile文件或者~/.bashrc文件中。

从上面可以得出结论: 

  • sys.path.append       # 用于临时性添加Python搜索路径
  • os.environ['PATH']    # 用于临时性设置Linux操作系统环境变量,一般是/bin目录下的可执行文件路径
  • export PATH             # 用于临时性或永久性设置系统环境变量

 

 

Traceback (most recent call last): File "/Users/ios/Downloads/linux_1/tools/server_manger_tool/build.py", line 49, in <module> setup( File "/Users/ios/PycharmProjects/pythonProject/.venv/lib/python3.9/site-packages/cx_Freeze/__init__.py", line 66, in setup return setuptools.setup(**attrs) File "/Users/ios/PycharmProjects/pythonProject/.venv/lib/python3.9/site-packages/setuptools/__init__.py", line 103, in setup return distutils.core.setup(**attrs) File "/Users/ios/PycharmProjects/pythonProject/.venv/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 184, in setup return run_commands(dist) File "/Users/ios/PycharmProjects/pythonProject/.venv/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 200, in run_commands dist.run_commands() File "/Users/ios/PycharmProjects/pythonProject/.venv/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands self.run_command(cmd) File "/Users/ios/PycharmProjects/pythonProject/.venv/lib/python3.9/site-packages/setuptools/dist.py", line 968, in run_command super().run_command(command) File "/Users/ios/PycharmProjects/pythonProject/.venv/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 988, in run_command cmd_obj.run() File "/Users/ios/PycharmProjects/pythonProject/.venv/lib/python3.9/site-packages/setuptools/_distutils/command/build.py", line 132, in run self.run_command(cmd_name) File "/Users/ios/PycharmProjects/pythonProject/.venv/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 316, in run_command self.distribution.run_command(command) File "/Users/ios/PycharmProjects/pythonProject/.venv/lib/python3.9/site-packages/setuptools/dist.py", line 968, in run_command super().run_command(command) File "/Users/ios/PycharmProjects/pythonProject/.venv/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 988, in run_command cmd_obj.run() File "/Users/ios/PycharmProjects/pythonProject/.venv/lib/python3.9/site-packages/cx_Freeze/command/build_exe.py", line 298, in run freezer: Freezer = Freezer( File "/Users/ios/PycharmProjects/pythonProject/.venv/lib/python3.9/site-packages/cx_Freeze/freezer.py", line 1128, in __init__ Freezer.__init__(self, *args, **kwargs) File "/Users/ios/PycharmProjects/pythonProject/.venv/lib/python3.9/site-packages/cx_Freeze/freezer.py", line 175, in __init__ self.finder: ModuleFinder = self._get_module_finder() File "/Users/ios/PycharmProjects/pythonProject/.venv/lib/python3.9/site-packages/cx_Freeze/freezer.py", line 422, in _get_module_finder finder.include_package(name) File "/Users/ios/PycharmProjects/pythonProject/.venv/lib/python3.9/site-packages/cx_Freeze/finder.py", line 837, in include_package self._import_all_sub_modules(module, deferred_imports) File "/Users/ios/PycharmProjects/pythonProject/.venv/lib/python3.9/site-packages/cx_Freeze/finder.py", line 230, in _import_all_sub_modules sub_module = self._internal_import_module( File "/Users/ios/PycharmProjects/pythonProject/.venv/lib/python3.9/site-packages/cx_Freeze/finder.py", line 362, in _internal_import_module module = self._load_module( File "/Users/ios/PycharmProjects/pythonProject/.venv/lib/python3.9/site-packages/cx_Freeze/finder.py", line 433, in _load_module self._load_module_code(module, loader, deferred_imports) File "/Users/ios/PycharmProjects/pythonProject/.venv/lib/python3.9/site-packages/cx_Freeze/finder.py", line 472, in _load_module_code module.hook(self) File "/Users/ios/PycharmProjects/pythonProject/.venv/lib/python3.9/site-packages/cx_Freeze/hooks/qthooks.py", line 293, in load_qt_qtqml copy_qt_files(finder, name, "QmlImportsPath", "*") File "/Users/ios/PycharmProjects/pythonProject/.venv/lib/python3.9/site-packages/cx_Freeze/hooks/qthooks.py", line 156, in copy_qt_files for source_path, target_path in _get_qt_files(name, variable, arg): File "/Users/ios/PycharmProjects/pythonProject/.venv/lib/python3.9/site-packages/cx_Freeze/hooks/qthooks.py", line 132, in _get_qt_files source_path, target_path = get_qt_paths(name, variable) File "/Users/ios/PycharmProjects/pythonProject/.venv/lib/python3.9/site-packages/cx_Freeze/hooks/qthooks.py", line 124, in get_qt_paths source_path, target_path = libraryinfo_paths[variable] KeyError: 'QmlImportsPath'
最新发布
07-30
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值