问题标签 [pythonpath]

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.

0 投票
2 回答
2115 浏览

python - 运行python的子进程出现导入错误

我试图通过从子进程中启动它来从python程序运行python脚本(原因是当脚本运行时主程序必须退出,并结合wx.CallAfter和Close)。但是,当脚本运行时,我在第 1 行遇到错误,ImportError: No module named os这让我认为这与 PythonPath 有关,但我可以从终端很好地运行脚本。

为什么脚本以这种方式运行时看不到任何核心模块?

编辑:有问题的行是:

BASE_DIR 只是脚本所在的目录。

0 投票
2 回答
7290 浏览

python - pythonic模块组织-如何引用根目录中的文件?

我的 python 代码在一个名为“project”的文件夹中,所以我的代码文件在 project/*.py 中。我想在其中包含子模块,例如

每个模块目录都有自己的init .py 文件,例如

假设我在 mymodule1 (project/mymodule1/test.py) 中有一个文件“test.py”,我想从“code”中引用一些东西,例如导入函数“myfunc”

问题是除非用户将“project/”目录放在他们的 PYTHONPATH 中,否则找不到“code”。有没有办法避免这种情况并使用某种“相对路径”来导入 myfunc,例如

基本上,我不想强​​迫代码的用户更改 PYTHONPATH,除非我可以在我的脚本中以编程方式为他们执行此操作。我希望它开箱即用。

如何才能做到这一点?任何一种解决方案都很好:以编程方式更改 PYTHONPATH,或者更理想的是,使用某种相对导入来引用“代码”,因为即使我不知道“project/code.py”在用户计算机上的位置,我也知道在哪里它是相对于“myfunc”的。

编辑:有人可以显示包内导入的正确示例吗?我试过,从“mymodule1”做:

其中“foo”在 code.py 中,但它不起作用。我在 mymodule1 中有init .py,所以:

其中 module1_code.py 尝试导入 foo,这是在“code.py”中定义的函数。

编辑:我仍然存在的主要困惑是,即使在采用了响应我的消息时给出的示例,显示了 project/sub1/test 层次结构,您仍然不能“cd”进入 sub1 并执行“python test.py”并拥有它工作。用户必须在包含“project”的目录中并执行“import project.sub1.test”。无论用户在哪个目录中,我都希望它能够工作。在这种情况下,用户必须执行位于 project/sub1/ 中的文件“test.py”。所以测试用例是:

这会产生错误:

如何解决?

谢谢。

0 投票
2 回答
10323 浏览

python - 使用 Python IDLE 时如何从备用位置导入模块?

我已经尝试解决这个问题超过 2 天,筛选互联网和教程,但我还没有解决我的问题。我是一个真正的新手,还不知道我在做什么..

我使用的软件:Mac OS X 10.6 Python v3.2.2 交互式解释器(IDLE)

问题:IDLE 的默认目录是 /Users/ME/Documents/。扩展名为 .py 的文件只能在位于此目录中时打开。但是,我创建了一个文件夹,我想在其中保存与该软件有关的所有 .py 文件等。目前,IDLE 无法从我选择的目录中加载 .py 文件。

我首先做的是添加到 IDLE:import sys. sys.path.append('Users/Mydir/') sys.path

但是,在 2010 年已经存在的线程中,我读到 sys.path 仅用于解释器,如果我要更改它,我需要修改 PYTHONPATH 环境变量:

PYTHONPATH="/Me/Documents/mydir:$PYTHONPATH" 导出 PYTHONPATH

但是,我很困惑如何使用它并且无法找到以下问题的答案:1)当我安装程序时,我的计算机上已经存在 PYTHONPATH(.py?)?如果是,它在哪里?我在任何地方都找不到它。如果否,我需要创建一个。但是,IDLE 可以从非默认目录加载文件的内容应该在哪里以及应该是什么?它应该只包含粗体字吗?

我希望我把我的问题说清楚了。

干杯

0 投票
1 回答
1946 浏览

python - 使用 virtualenv 时在 pythonpath 上包含 Git 子模块

我正在使用 Git 对 Django 项目进行版本控制。

尽可能将不属于项目本身但项目依赖的所有源代码作为 Git 子模块引入。它们位于一个lib目录中,并且必须包含在 python 路径中。目录/文件布局如下所示:

你会说,在 python 路径中包含库的最佳实践是什么?

我正在使用 virtualenv,所以我可以轻松地将库符号链接到 virtualenv 的站点包目录。但是,这会将 virtualenv 绑定到这个特定的项目。我的理解是 virtualenv 不应该依赖于我的文件。相反,我的文件应该依赖于 virtualenv。

我正在考虑为这个项目的不同本地副本使用相同的 virtualenv,但如果我这样做,我将失去这种能力。任何更好的想法如何解决这个问题?


更新:

最好的解决方案是让 pip 管理所有依赖项。

但是,这意味着不能使用 git 子模块,因为 pip还不能正确处理相对路径。因此,外部依赖项必须存在于 virtualenv 上(通常是:my_env/src/a_python_module)。

我仍然更喜欢使用子模块,让一些依赖项存在于我的项目树上。这对我来说更有意义,因为我已经需要分叉这些 repos 以更改其中的一些内容,并且将来可能需要进行更多更改。

0 投票
1 回答
598 浏览

python - 如何让 Eclipse 在 Mac OS X 上继承 $PYTHONPATH

我正在尝试设置 Eclipse + PyDev,因此我不需要从 Eclipse 中更改 PYTHONPATH,而是它将从我的主目录中的 .profile 文档继承 PYTHONPATH。这可能吗,还是我需要使用 Eclipse 的 PYTHONPATH 编辑器实际添加 PYTHONPATH 位置?我问是因为当我在 Eclipse 中从基于终端的 python 到 python 时遇到不同的错误,使用相同的文件。

0 投票
2 回答
838 浏览

python - Django 将项目路径存储在哪里?

我想重命名一个我创建的项目:

但是在重命名文件夹和我项目中的所有引用之后,我仍然无法启动它。它说 myproject.settings 不在 pythonpath 中。由于旧项目名称不在 pythonpath 中,我认为 django 必须将这些名称和路径保留在其他地方。它在哪里存储这些信息?

我知道我可以在执行时添加到 sys.path 的路径,但我想完全解决这个问题。

如果我运行:

我得到:

“mysite”的名称已经是正确的名称,并且与文件夹名称相对应。但它仍然找不到它。

有任何想法吗?

PS:我正在运行debian。

0 投票
2 回答
2210 浏览

python - 使用 python 包分发运行脚本的正确方法?

假设我有一个名为 mypackage 的 python 包,其中包含一系列脚本。一旦 mypackage 在 site-packages 目录中,用户就可以像往常一样将 mypackage 中的各种 Python 文件称为 mypackage.submodule1 和 Python 中的 mypackage.submodule2。但是,其中一些是旨在从命令行调用的脚本。例如,在 submodule1 中,我有:

一旦“mypackage”在他们的路径中,如何正确分发/打包 mypackage 以便用户可以干净地将这些子模块用作命令行脚本?我原以为你可以这样做:

但是这种语法是无效的。换句话说,用户如何将我的包的子模块引用为脚本,而不是从 Py 中导入它们,而不需要实际的“mypackage”目录在他们的 PYTHONPATH 中?(只有包含“mypackage”的顶级目录,例如 site-packages 应该在它们的 PYTHONPATH 中。)

谢谢。

0 投票
2 回答
412 浏览

python - 如何在 PYTHONPATH 中插入新模块?

我正在为我的 emacs 安装http://bitbucket.org/agr/ropemacs

在 README.txt 中它说:

请注意,rope 和ropemacs 应该在你PYTHONPATH的工作中。

我检查了我的 sys.path python,但那里没有任何ropemacs!但我已经安装了!如何在 PYTHONPATH 中插入ropemacs?

0 投票
1 回答
1327 浏览

python - python 找不到要导入的模块(在 Mac 上)

在这个问题的开头,我会说我以前几乎没有使用过 python,也从未在 Mac OS 上使用过,所以我完全准备好接受我可能在做一些相当愚蠢的事情!

我收到了两个 python 项目,其中一个我需要运行。当我打开我感兴趣的项目(在 TextWrangler 中)并运行时,我收到以下错误:

好吧.. fetch_command 是另一个程序中的一个模块,它与/Users/myname我要运行的程序位于同一目录 ( ) 中。(应用程序的文档很少表明:

我不会尝试安装到您的 python 安装目录中,我会安装到某个主目录或前缀并设置您的 PYTHONPATH 和 PATH(或使用 virtualenv)

所以我已经尝试(并且成功了 - 我已经通过调用echo $PATHand进行了测试echo $PYTHONPATH)添加Users/myname到 PATH 和 PYTHONPATH。这什么也没做。然后我尝试添加/Users/myname/other_python_app/src到 PATH 和 PYTHONPATH,但这也没有奏效。任何人都知道我做错了什么..?

提前非常感谢!

0 投票
2 回答
1798 浏览

python - 不在路径上的包中的 Python 相对导入

如何将 python 包中父目录中的文件(不在路径上)导入子目录中的文件?

我对python包装的词汇并不完全清楚,例如:

目录1/in_dir1.py:

dir1/dir2/in_dir2.py

鉴于这dir1不在 python 路径上,我正在寻找in_dir1导入in_dir2.

我尝试from .. import in_dir1from ..dir1 import in_dir1 基于此 Q/A但均无效。执行该意图的正确方法是什么?这个 Q/A似乎包含了答案;但是,我不太确定该怎么做/如何使用PEP 366实际解决我的问题

这两个__init__.py文件都是空的,我在v2.6上。

我试图在不使用谷歌不断出现的任何路径黑客的情况下做到这一点。