Python sys.path与控制台和运行时不同

2024-06-01 14:42:55 发布

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

我有一个简单的程序,job_admin_cli.py

import pyhocon

import sys
print(sys.path)

当我执行它时,我得到以下结果

myapptest-staging-dark-3 33.5.0-jscherman /opt/myapptest/staging/myapptest $ sudo python3 job_admin_cli.py
['/opt/myapptest/staging/myapptest', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/dist-packages', '/usr/lib/python3/dist-packages']
Traceback (most recent call last):
  File "/opt/myapptest/staging/myapptest/job_admin_cli.py", line 1, in <module>
    import pyhocon
ModuleNotFoundError: No module named 'pyhocon'

另一方面,当从控制台执行完全相同的操作时

myapptest-staging-dark-3 33.5.0-jscherman /opt/myapptest/staging/myapptest $ python3
Python 3.6.10 |Anaconda, Inc.| (default, Jan  7 2020, 21:14:29)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyhocon
>>>
>>> import sys
>>> print(sys.path)
['', '/opt/myapptest/staging', '/opt/myapptest/staging/miniconda3/envs/myapptest/lib/python36.zip', '/opt/myapptest/staging/miniconda3/envs/myapptest/lib/python3.6', '/opt/myapptest/staging/miniconda3/envs/myapptest/lib/python3.6/lib-dynload', '/opt/myapptest/staging/miniconda3/envs/myapptest/lib/python3.6/site-packages']

注意,它现在不仅可以导入pyhocon模块,而且还可以在sys.path中打印不同的路径

为什么会这样


Tags: pathpyimportcliadminlibusrsys