标签: pythonpath

`PYTHONPATH` 真的是一个环境变量吗?

文档声明如下sys.path

指定模块搜索路径的字符串列表。从环境变量 PYTHONPATH 以及依赖于安装的默认值初始化。

所以我在这里的理解是这PYTHONPATH是一个环境变量。可以使用以下命令在Powershell中打印出环境变量:

PS> echo $ENV:VARIABLENAME
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,$ENV:PYTHONPATH我没有得到任何输出。PYTHONPATH如果我尝试从 python 终端访问,我会得到KeyError

>>> import os
>>> os.environ["PYTHONPATH"]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python310\lib\os.py", line 679, in __getitem__
    raise KeyError(key) from None
KeyError: 'PYTHONPATH'
Run Code Online (Sandbox Code Playgroud)

但是,我知道在某处PYTHONPATH定义,因为当我使用时它的值确实出现:sys.path

>>> import sys
>>> sys.path
['', 'C:\\Python310\\python310.zip', 'C:\\Python310\\DLLs', 'C:\\Python310\\lib', 'C:\\Python310', 'C:\\Users\\aa\\AppData\\Roaming\\Python\\Python310\\site-packages', 'C:\\Python310\\lib\\site-packages', 'C:\\Python310\\lib\\site-packages\\scons-4.4.0-py3.10.egg', 'C:\\Python310\\lib\\site-packages\\colorama-0.3.2-py3.10.egg', 'C:\\Python310\\lib\\site-packages\\win32', 'C:\\Python310\\lib\\site-packages\\win32\\lib', 'C:\\Python310\\lib\\site-packages\\Pythonwin']
Run Code Online (Sandbox Code Playgroud)

如果PYTHONPATH确实是一个环境变量,为什么我无法使用 Powershell 或 …

python environment-variables pythonpath

2
推荐指数
1
解决办法
7648
查看次数

如何修复python路径

我的 Mac 上安装了 python 2.7.2。我使用 python-2.7.2-macosx10.6.dmg 安装我只有一个 python 实例。

当我在终端中输入以查找 python 路径时,我得到以下信息:

 python
Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import os.path
>>> os.environ['PYTHONPATH'].split(os.pathsep)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/UserDict.py", line 23, in __getitem__
    raise KeyError(key)
KeyError: 'PYTHONPATH'
Run Code Online (Sandbox Code Playgroud)

这是缺少的一件事,所以我可以安装 Mercurial。我之前使用过 Mercurial,我可能弄坏了一些东西。你知道如何解决这个问题吗?

python pythonpath

1
推荐指数
1
解决办法
2万
查看次数

使用Python库而不是全局安装它们

我有一个python脚本,我想部署到各种PC运行测试,我需要使用第三方库pysnmp.由于我不想pysnmp在每台目标PC上手动安装,我想我可以将pysnmp(和相关的)eggs放在一个eggs/目录中,然后在导入之前将其附加到python路径:

import sys
sys.path.append("./eggs/pysnmp-4.2.5-py3.4.egg")
sys.path.append("./eggs/pyasn1-0.1.7-py3.3.egg")
from pysnmp.entity.rfc3413.oneliner import cmdgen
Run Code Online (Sandbox Code Playgroud)

只要我在包含的目录中执行脚本,这就像预期的那样工作eggs/,但它似乎相当手动和杂乱.是否有一种可移植的方式告诉python只是在[path to module]/eggs/我想要导入时搜索?

python egg pythonpath

1
推荐指数
1
解决办法
214
查看次数

如何使用Windows批处理文件获取Python位置?

我需要创建一个Windows批处理脚本,该脚本创建一个特定文件并将其移动到PYTHONPATH\Lib\distutils文件夹。

这是我正在尝试做的事情:

ECHO [build] >> distutils.cfg
ECHO compiler=mingw32 >> distutils.cfg
MOVE distutils.cfg PYTHONPATH\Lib\distutils
Run Code Online (Sandbox Code Playgroud)

但是,PYTHONPATH不存在,但是我知道可以在PATH其中设置Python位置。如何解析PATH和提取Python位置?

python path batch-file pythonpath

1
推荐指数
2
解决办法
2779
查看次数

sys.path中的第一个条目应该代表当前的工作目录吗?

我一直认为sys.path默认情况下第一个条目是当前工作目录.但事实证明,在我的系统上,第一个条目是脚本所在的路径.因此,如果我正在执行一个/usr/bin来自的脚本/some/directory,那么第一个条目sys.path/usr/bin.我的系统上是否配置错误,或者这是预期的行为?

python pythonpath sys.path

0
推荐指数
1
解决办法
494
查看次数