问题标签 [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.
python - Python 找不到设置了 PYTHONPATH 的模块
我对新的 python 2.7.10 完全感到困惑。
我已经从官方网站下载的 tar.xz 安装了 python 2.7.10。然后我将 /usr/local/bin/python2.7 与 /usr/bin/python2.7 和 /usr/bin/python 链接起来,但是当我尝试导入模块时,我得到ImportError: No module named "module_name" . 例如:
但如果:
我们得到:
至此,gtk 模块导入成功。
让我们“cd ~”看看 sys.path:
好的,没有/usr/lib/python2.7/dist-packages,我们添加它:exportPYTHONPATH=$PYTHONPATH:/usr/lib/python2.7/dist-packages:/usr/lib/python2.7
现在:
但它仍然找不到模块:
我必须做什么?
python - 在 1 个包 python 中使用 __init__.py 解决循环导入
我有 2 个文件在一个包中,将 1-2 个函数从每个文件拉到另一个文件会很方便。在init .py 我试过:
在 mappings.py 中:
在 get_models.py 中:
而不是命名空间冲突或诸如此类,我实际上得到:
这让我感到惊讶,我什至对我的包有足够的偏执,将它附加到 sys.path。当我尝试从一个文件导入另一个文件时,不通过init .py 并将 init 留空,我的导入工作。我想知道:
python 如何在您的文件结构中查找包(这不是 django 应用程序,只是常规文件夹)?那么我对 sys.path 的附加是不必要的吗?
为什么我不能将名称放入包命名空间并将它们导入每个单独的模块中?我什至尝试改变
from mappings import *
from get_models import *
为了更安全from get_models import get_model_name_or_None
,我得到与上面完全相同的错误
谢谢
我的init .py 为空,mappings.py:
(初始化为空,不附加我的路径,不尝试映射中的任何导入,get_model 正在正确地从映射中导入函数)我得到:
正确的输出是像以前一样运行的代码(如预期的那样),但我收到警告 no module。奇怪的是,当我取消注释我的附加:
我仍然得到完全相同的正确输出,然后是警告/usr/bin/python: No module named mappings.py
尝试在 get_models 中使用映射也很困难:
使用
import mappings
空初始化会导致NameError: name 'mappings' is not defined
在我的初始化中使用
import mappings
withimport mapping
也会导致相同NameError: name 'mappings' is not defined
在我的 init 中使用
import mappings
但不在get_models.py
并尝试调用mappings.process_model
产量get_models
:NameError: global name 'mappings' is not defined
python - 将 python 安装到网络上一个可移植的、自包含的目录中
我需要将用于 linux/unix 的 python 2.7 和 3.4(从源代码构建)安装到网络上的一个目录中,而不是最终使用它的位置。
即包含安装的目录必须是可移植的和独立的。
因此,似乎“依赖于安装的默认值” sys.path 之类的东西应该相对于 python 安装的当前位置进行定义。
但是, --prefix 和 --exec_prefix 需要绝对路径。
例如:我可能会在“/stage/tools/python”中创建安装,然后将“python”目录复制到“/tools/knights/ni”。如果我然后调用“/tools/knights/ni/$platform/bin/python”,python 应该从“/tools/knights/ni/”下的安装中找到它需要的一切
如何进行便携式、独立安装?
非常感谢您的任何指导。
python - 当我重新启动 python 时,我设置的 python 模块路径已经消失
我试图添加另一个模块路径。假设我想附加路径'd'
当我重新启动 python 时,我添加的路径消失了。我想将路径“d”设置为默认值。
python - sys.path 在哪里被替换?
有些图书馆确实sys.path
以我不希望的方式改变了我。
但我找不到它。受影响的 virtualenv 安装了很多库。
我用自己的类替换了 sys.path 来改变修改,但这没有帮助,因为代码似乎改变sys.path
如下:
如何找到“邪恶”代码行及其堆栈跟踪?
有关的
python - 为什么带有尾随冒号的 PYTHONPATH 将当前目录添加到 sys.path?
考虑一个这样的 Python 项目:
foo
在正常情况下,如果从项目的根目录运行脚本,尝试从包中导入会失败,因为默认的 Python 行为是将调用 Python 解释器的脚本目录
(不一定是当前目录)添加到sys.path
. (文档):
然而,我最近注意到这样的导入正在我的盒子上工作,我追踪到一些与 PYTHONPATH 相关的令人惊讶的行为。在我的 Bash 配置文件中,我向 PYTHONPATH 添加了一个目录:
如果 PYTHONPATH 最初为空,则该命令形式(有点草率,但很常见)将留下一个尾随冒号:
我一直认为这个尾随标点没有影响,但似乎尾随冒号是神秘成功导入的原因。前导或尾随冒号(甚至是已定义但为空的 PYTHONPATH)将导致在模块加载之前sys.path
包含一个空字符串
,这反过来又导致当前工作目录被添加到.site
sys.path
这里有一个 Python 脚本和一个 Bash 脚本来演示。我使用 Python 2.7 和 Python 3.3 得到了相同的行为。
Python脚本run.py
::
bash 脚本demo.sh
:
我的问题:
我是否正确理解了情况,或者我是否误入歧途?
这在任何地方都有记录吗?我什么也没找到。至少,我会在此处发布此信息,以防对其他人有所帮助。
只有我一个人发现这种行为出乎意料吗?
python - 从其他目录导入 python 文件,无需 sys.path.append 或更改 PATH
我有以下文件夹结构
所有__init__
文件都是空的。
现在我希望能够在任何地方test.py
运行表单,这很重要。
test.py
来电
因为它需要来自main.py
. 这会导致错误:
我找到的解决方案包括向我的环境变量添加sys.path.append
命令test.py
或将文件夹 src 添加到我的PATH
环境变量中 - 没有其他方法吗?
我不能强迫每个用户更改他们的PATH
,也不能向所有测试文件添加sys.path.append
命令。
python - Problems with sys.path on Python shell
I'm trying to run a Python code that imports Numpy. However, everytime I tried to do it, it shown
Then I removed the Numpy directory with
and to restart the Python shell. Now It still shows the same error message and when I try to use sys.path commands, it prints
Can somebody help me?
python-2.7 - 如何预先替换列表 sys.path 中模块的路径?
我已经在路径“/home/user/.local/lib/python2.7/site-packages/windrose/windrose.py”中安装并加载了模块“windrose”到 Python2.7。当我运行一个程序时,包括
我收到错误消息:
我猜列表 sys.path 包含此模块的错误条目,因为 Python 在我的文件夹“评估”中搜索 windrose.py。因此,我直接从正确的路径加载了模块,并且我的程序运行良好:
但这应该更容易操作!我想知道的是如何永久替换此模块的正确路径的错误路径?我找到了一些将新目录插入到 sys.path 的答案,但我也不想有两个 windrose 目录。有任何想法吗?谢谢!
python - 使用 sys.path.insert(0,path) 在 python 文件中包含 url 路径。?
嗨,伙计们,我可能听起来很有线,
我想在我的 python 脚本中包含一个 url 路径,它有一些常用的功能。目前我正在做这样的事情:
这里common
位于我的脚本所在的父文件夹中,所以它工作得非常好。
现在,我想包含一个托管在IIS
. 我可以使用 url 访问该文件夹,但我想将它包含在我的脚本中,以便它可以通过网络访问位于公共文件夹中的公共函数文件。
就像是 :
我也尝试过使用 python 从 url 访问脚本。
所以,我可以在每次需要时在本地复制文件,但我正在寻找更好的解决方案。
请帮助我,无论是可能的还是我完全在错误的节点上。