问题标签 [sys.path]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 在 Jython 中设置导入模块路径 - 奇怪的行为
我正在构建 Java 到 Jython 桥接类。我要解决的任务是让 Jython 在我的应用程序工作目录(也称为程序执行目录)中查找 python 模块。
我通过将System.getProperty("user.dir")
值附加到 sys.path 来做到这一点:
我得到 ImportError 异常:
C:\\Users\\vvlad\\IDEAProjects\\transform
应用程序目录在哪里。
看起来sys.path
像这样:
当我在 Jython 注册表 python.path 变量中手动指定工作目录的完整路径时,导入工作正常。而且sys.path
看起来不一样:
因此,当工作目录作为sys.path
. 但是当工作目录是最后一个条目时失败。
我正在使用 Jython 2.5.2 并从 IntelliJ IDEA 环境在 Windows 机器上运行测试。
对我来说,B 计划是user.dir
在初始化之前为 Jython 注册表 python.path 设置值PySysState
- 但这会引入一些隐藏行为。
python - Pylint - 如何打印 Pylint 的 sys.path?
我正在尝试将模块添加到我的 Pylint 路径中,以便可以使用此问题中看到的解决方案来导入它们。不幸的是,我希望在使用此解决方案后可以导入的模块似乎仍然不存在。我想检查我尝试添加到 Pylint 的路径是否实际添加。有没有一种简单的方法可以打印出 Pylint 的 sys.path?非常感谢!
python - 如何从目录中导入模块?
在我的系统上,我有两个版本的 Python(我在命令行中输入python
并调用它们)。python2
当我使用 Python 的第一个版本时,我无法导入sklearn
模块,但我可以在 Python 的第二个版本中做到这一点。
我想使用 Python 的第一个版本(因为那里有其他模块可用),同时,我希望能够import sklearn
从这个版本的 Python 中使用。
我的解决方案是使用:
为了找到sklearn
模块的位置,我启动了一个 python 会话(使用 python 的第二个版本,sklearn 在其中工作)。我键入:
结果我得到:
在 Python 的第一个版本的会话中,我尝试过:
不幸的是,它没有用。结果我得到:ImportError: No module named sklearn
有谁知道我做错了什么以及是否有可能以我尝试的方式达到目标?
python - 奇怪的 python sys.path 值
注意 sys.path 最左边的值,除了空字符串...
从根目录,python -c "import sys; print(sys.path)"
给我:
从我的主目录:
从 /boot/grub:
无论我从哪个目录进行测试,这种行为都会继续。也就是说,您看到的 sys.path 的第二个和第三个值应该从我的 PYTHONPATH 变量中加载,但第一个值总是将我的当前目录附加到它的前面。
此外,python -Sc "import sys; print(sys.path)
由于某种原因,不这样做。使用该命令,我总是得到:
这一切都非常令人惊讶。site.py 对此负责吗?有人可以指出我正确的方向吗?我只是想导入我自己的模块,目前由于某种原因无法导入。
java - 在 pydev、Eclipse 中为 Java 项目的 sys.path 添加一个 python 模块
我一直在关注 Jython 书,以便能够让 Java 应用程序导入 Python 模块。
http://www.jython.org/jythonbook/en/1.0/JythonAndJavaIntegration.html#one-to-one-jython-object-factories特别指出“为了使用这种技术来利用 Jython 模块,您必须确保.py 模块包含在您的 sys.path 中,或者在您的 Java 代码中硬编码模块的路径”
如何确保将 .py 模块添加到 Eclipse 中 pydev 的 sys.path 中?我正在使用 Eclipse Kepler 版本 Build id:20130614-0229,Pydev 版本 2.8.1 和 JDK 6。
每当我尝试导入 Python 模块时,我都会不断收到导入错误。
从 Java 类打印 sys.path 如下代码片段告诉我 sys.path 由 ['C:\jython2.5.3\Lib', ' classpath ', ' pyclasspath /'] 组成。
如何在项目属性(或 Pydev 开发环境中的任何位置)中设置此 sys.path?
我不想在 Java 代码中修改 sys.path?
['C:\jython2.5.3\Lib', ' classpath ', ' pyclasspath /'] 线程“main” Traceback 中的异常(最后一次调用):ImportError 中的文件“”,第 1 行:没有名为 Building 的模块
更新
根据http://wiki.python.org/jython/JythonFaq/InstallingJython#What_do_.22python.path.22_and_.22python.prepath.22_mean_in_the_Jython_registry.3F,在 Jython 注册表文件中修改了 python.path 以将 Python 模块添加到蟒蛇路径。谢谢@SimonC 的提示。
python - Google App Engine,更改哪个 python 版本
我正在尝试将 GCS 客户端库与我的应用引擎应用程序一起使用,但我遇到了这个 -
“为了在您的应用程序中使用客户端库,请将/src/cloudstorage
目录放在您的目录中,sys.path
以便 Python 可以找到它。”
首先,这是否意味着我需要将目录移动到我的sys.path
OR 是否需要添加~/src/cloudstorage/
到我的 PATH 环境变量中?
其次,当我从 App Engine 交互式控制台打印时sys.version
,sys.path
我看到了 2.7.2 的 Python 版本,但是当我从终端(在 Mac 上)打印时,我得到了我想要使用的 Python,并通过 Homebrew - 2.7 安装.5. 控制台中的sys.path
显示所有 App Engine 路径和默认 Python 安装 -/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
在我的终端上 -/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/
我需要帮助了解如何改变这一点。
** 更新 **
好的,我想出了这个答案的一部分。“为了在您的应用程序中使用客户端库,请将/src/cloudstorage
目录放在您的目录中,sys.path
以便 Python 可以找到它。” 意味着将实际目录移动到 App Engine 项目目录。
第二部分仍然存在 - 为什么我的 Mac PATH 环境变量没有在 APP Engine 中使用。如何更改 App Engine 使用的默认 Python 版本(从 2.7.2 到 2.7.5)?这与更改 YAML 文件中的版本无关。
jython - Jython - 将模块路径配置到 jython 脚本中
看起来函数 os.chdir() 不适用于 Jython,是否有另一种方法可以在 Jython 脚本中切换工作目录?
(运行我的脚本时出现以下错误:OSError: [Errno 0] chdir not supported in Java)
提前感谢任何解决方案。
编辑:问题标题已更新以匹配解决方案。标签也是。
python - python:如何导入包?
这是我的文件夹:
_ init _ .py包含
我想导入 foopackage。我试过这个:
我已经尝试 sys.path.append('/home/username/Workspace/foopackage') 代替并且事情已修复。
我问我是否必须将每个包目录添加到 sys.path 列表才能导入它们?
还是有其他问题?
python - 使用 Python .pth 文件,假设无法访问站点包目录
在我当前的系统中,所有目录(例如).local/lib/python2.7/site-packages
都在全局管理员控制下,并且在用户之间是标准化的。
但是,我想添加我自己的目录集合,以便在启动时带入 PYTHONPATH,最好以易于管理的方式,例如使用.pth
辅助站点目录中的文件。
有没有办法可以通过普通的 Python 通道实现这一点,但不需要对 Python 查找路径元素的标准位置进行任何更改?
我特别想知道是否有一种方法可以将文件放在 PYTHONPATH 中的文件夹中sitecustomize.py
或usercustomize.py
任何位置,并期望它们会自动执行?(而不是通过将此类文件放在管理目录中来获得此行为,例如site-packages
,这是我想要避免的。)
我的目标是将文本文件放置paths.pth
在某个目录中,例如/home/my_configs/python_stuff/
,然后只需将该目录放置在 PYTHONPATH 中,例如.bashrc
文件。然后,至少,我只手动维护一个要添加的路径,并且更容易通过更改该.pth
文件中的内容来进行版本控制或参数化加载的内容。
如果管理员限制没有到位,我可以轻松地做到这一点,site-packages
但我需要一个完全不在此范围内工作的解决方案。
在/.bashrc
我有这个:
在目录/home/ems/python_paths/
中,我只有两个文件,sitecustomize.py
并且paths.pth
(但我也尝试在__init__.py
那里添加一个,这(如预期的那样)没有帮助)。这两个文件如下所示:
网站定制.py
路径.pth
的内容paths.pth
正是过去直接导出的内容.bashrc
,例如,允许我from util.DataManager import DataManager
作为顶级导入进行。
但是在设置了上面的各种文件、注释掉exports
in并获得一个新的终端之后,我看到了这个:PYTHONPATH
.bashrc
python - 为什么我用来运行代码的每个工具的 Python 'sys.path' 都不同?
我对用于构建我的 Python 的规则感到困惑sys.path
。我知道第一个条目将是“包含用于调用 Python 解释器的脚本的目录”,或者如果以交互方式调用 Python,则为空字符串,最后一个条目将是基于 Python 安装的条目。但是我对这两组条目之间发生了什么感到困惑,特别是它们与我的 PYTHONPATH 的关系。
当我(A)在目录中的系统命令提示符处执行打印出我sys.path
使用的条目的脚本时,我得到:python test.py
../scriptpath
这与 (B) 我在 IPython shell 中运行import test
时得到的不同../scriptpath
或 (C) 在 Python shell 中
同时,(D)当我test.py
在我的IDE(PyCharm)中运行时,我得到
或 (E)
取决于我是否可以选择启用“内容根目录”。
我想我了解每种情况下 (i) 条目的来源:除了 PyCharm,它在“解释器设置”中的“路径”末尾使用“用户添加”路径;所有这些都使用我的系统 PYTHONPATH;但我不明白其他整体来自哪里(或者就此而言,PyCharm 如何能够忽略我的系统 PYTHONPATH)。
为什么.. scriptpath
有时在 (i) 之前和之后重复输入?使用什么规则添加其他条目(例如/usr/local/bin
在(B)中?