问题标签 [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 投票
1 回答
9692 浏览

python - PyCharm 如何以及为什么改变 Python 的导入逻辑?

我在 Windows 上有一个 PyCharm 1.2.1。我必须编辑同一个项目的不同分支——有些繁重的分支,因为它们位于磁盘上的不同文件夹中——说它是c:\apps\alphaand c:\apps\beta. 对于每个这样的文件夹,PYTHONPATH 变量应调整为指向适当的供应商库,这些库位于项目根文件夹(c:\alpha\vendor...)内的某个位置。我设法通过从 cmd 批处理文件启动 PyCharm 来解决这个问题,该文件在启动 PyCharm 之前设置了必要的 PYTHONPATH 变量值(所以我有PyCharm.cmd内部alphaPyCharm.cmd内部beta目录)。

问题:当我打开 PyCharm 编辑beta文件夹时,import语句从文件夹中导入模块alpha!当我python.exe从命令行启动解释器时,一切都按预期工作 - 问题似乎只出在 PyCharm上。

第二个奇怪的调查:print sys.path从 PyCharm 和外部 python.exe 解释器执行代码给出不同的结果 - 从 PyCharm 它不显示我的 PYTHONPATH 模块。我是 Python 和 PyCharm 的新手,但这种行为看起来非常奇怪和不一致。

最后,我在 PyCharm IDE 中找到了一些设置,看起来应该可以让我解决这个问题 - File -> Settings -> Python Interpreter. 在那里我找到了alphabeta文件夹的所有路径。无法清除此路径列表,只能禁用某些元素。但是即使禁用也有些愚蠢-每次编辑alphabeta“解决方案文件夹”时,我都应该分别禁用/重新启用它们。

所以最后一个问题:如何使用 PyCharm 编辑单独的项目(文件夹)并强制 PyCharm 不要从错误的位置导入模块?

0 投票
32 回答
331379 浏览

python - django 导入错误 - 没有名为 core.management 的模块

好的,我看到很多这样的错误。我已经尝试了我所知道的一切,但还没有弄清楚。

我正在开发一个运行 python 2.5 和 Django 1.3 的开发服务器。解压 tar.gz 下载后,使用 python setup.py install 安装了 Django 1.3。

一切正常,我很少需要运行manage.py,但我正在尝试使用新的静态文件应用程序并遇到问题。

好的,所以我有PATH问题。

Django install我仔细检查我的site-packages目录。

好的,让我们看看我有什么,echo $PYTHON_PATH 是空的,所以我设置了它

仍然没有运气。让我们检查一下 sys.path 必须说什么

路径在那里,我什至用内容创建了 /usr/lib/python2.5/site-packages/django.pth

有人知道这里发生了什么吗?

我在阻碍路径的更远处找到了一个符号链接,但没有出现新的错误。

我还尝试创建一个新项目以查看那里是否存在任何问题并得到相同的 utils.version 错误。

侧节点:来自#django 的 Unode 帮助了我一点,在同一台机器上设置 virtualenv 并克服了错误,所以仍然不确定这里实际安装的情况,但它似乎不在 django 项目中,而是在 django /python 安装。

0 投票
2 回答
9012 浏览

python - Python setup.py install 使用了错误的 Python 安装路径

我在一个 bluehost-server 上,它具有 python2.6 的“基本”安装。我在我的用户目录中安装了 python2.6,到目前为止它工作正常,但是当我尝试使用“setup.py install”、“easy_install”或“pip install”安装 python 包时,我得到:
error: invalid Python installation: unable to open /usr/lib/python2.6/config/Makefile (No such file or directory)
所以,它尝试使用没有此 Makefile 的系统范围安装。同样使用 --prefix 或 --user 参数也无济于事。

如何告诉 pip 或 easy_install 在我的用户目录中使用 python 安装?

0 投票
1 回答
2073 浏览

bash - 无法将目录添加到 Python 路径

在我的 .bashrc 中,我添加了以下内容:

导出 PYTHONPATH=$PYTHONPATH:/home/tbao/src/Cython-0.14.1

当我重新登录时,我收到错误:

-bash: /home/tbao/src/Cython-0.14.1: 是一个目录

我想将该目录添加到我的pythonpath,但我不能。我究竟做错了什么?

0 投票
1 回答
330 浏览

python - 站点包之外的版本化包名称的 PYTHONPATH 问题

在这里尝试解决包管理问题时,我了解到我PYTHONPATH用于访问 site-packages 目录之外的包的方式可能存在问题。

当该目录不在 python site-packages 目录中时,尝试wxPython从其版本化目录文件夹名称(即)导入包(例如)中的模块时,我收到一个导入错误。wx-2.8-msw-unicode

要重新创建问题:在 python 目录之外创建一个目录,例如C:\foo. 下载wxPython,并将其放在该目录中(给C:\foo\wx-2.8-msw-unicode)。如果你喜欢,可以添加更多。将目录添加C:\foo到您的PYTHONPATH环境变量中。打开一个新的 python 交互式 shell 并运行

验证路径是否存在(它是),然后

我收到导入错误。我究竟做错了什么?这种行为正确吗?

0 投票
3 回答
2099 浏览

python - Python2 的 sys.path 在 Windows 中究竟是如何设置的?

Python 文档说这是sys.path“从环境变量初始化PYTHONPATH,加上依赖于安装的默认值”。

但是对于 Windows,“依赖于安装的默认设置”究竟是什么?

(我知道这可能取决于 python 的编译方式,但如果我只有二进制文件,有没有办法弄清楚默认值sys.path是如何构造的?)

澄清:我不是在问“什么是我的sys.path?”。我想知道“Python 是如何构造 sys.path 的?” 文档说这sys.pathsys.path[0]脚本的当前目录,加上 Python 在PYTHONPATH环境变量中找到的任何内容,以及一些依赖于安装的 voodoo。那么这个神秘的巫术部分是什么?

0 投票
1 回答
2778 浏览

python - PyDev 在项目源文件夹中找不到模块

好的,所以这不是我第一次遇到这个问题,但这一次真的把我逼到了边缘。问题是这样的。我正在 Linux 和 Windows 上开发一些东西,通过 Dropbox 共享工作区并在解释器之间切换。有时,项目停止执行。我得到的错误是:

有趣的是,NetworkNamingGame\src 是项目源文件夹。而naminggame是那里唯一的包。包资源管理器成功将其识别为包并显示相关图标。

我意识到这可能是由源文件夹更改路径引起的(尽管我认为它们是相对路径),所以我反复尝试删除项目源文件夹并将其读取到源文件夹列表中,“强制恢复内部信息”,清理该项目,删除 PyDev 配置并重试上述所有内容,但没有运气。当我检查 PyDev 执行的 python 解释器命令时,我可以看到源文件夹不在 PYTHONPATH 中。我找到的唯一解决方案是将整个内容导入一个新项目。如果你问我,这不是一个很好的解决方案。

如果这是一个外部文件夹,我只会适度生气,但它就在那里!它是我的配置应该查看的第一个也是唯一一个文件夹。任何想法为什么会发生这种情况以及如何在不从头开始的情况下解决它?

版本位:

Eclipse SDK

版本:3.6.1

内部版本号:M20100909-0800

PyDev

版本:1.6.5.2011020317

以及命名游戏文件夹的内容(根据要求提供):

0 投票
2 回答
1397 浏览

python - 特定于应用程序的 PYTHONPATH

我有一个包含一系列包的应用程序。有相当多的模块引用了包层次结构中更高的其他模块。如下例所示,我可以使用相对导入来解决这个问题。但是,直接运行模块进行测试会失败并出现Attempted relative import in non-package异常。

有没有更好的方法来组织我的应用程序或导入语句,以便模块可以单独执行以进行测试并从其他模块导入?

例子

基础.py

孩子.py

用户.py

现有解决方案

我发现我可以将以下标头添加到需要引用层次结构中更高模块的模块顶部:

缺点是我需要到处添加这段代码,而且它不是恒定的:'..'相对路径会根据层次结构中包的深度而变化。

其他可能的解决方案...

  1. 我可以使用我的应用程序根目录创建一个 .pth 文件。不幸的是,这必须添加到我的 Python 安装的 site-packages 文件夹中,因此它不是特定于应用程序的。
  2. 我可以暂时将我的应用程序根目录添加到 PYTHONPATH,并使我的所有模块都从根目录引用包。但是,这消除了通过简单地调用来运行脚本的简单性python.exe whatever.py
  3. 我可以编写某种模块,当导入时,它会在我的应用程序的根文件夹中查找标记文件。然后可以将这个通用模块安装到我的本地 Python 安装中,并由我的应用程序中的每个模块导入,从而保证根在 PYTHONPATH 中,无论我正在执行哪个模块。
0 投票
2 回答
2255 浏览

python - 导入 django 不起作用?蟒蛇路径?

我正在使用 Python 2.7 和(我相信)Django 1.0 运行 Windows。我使用 Bitnami Djangostack 安装了 Django。奇怪的是,当我在 python 中输入“import django”时,我得到了这个错误:

我在网上搜索了答案,但我找到的所有答案都是“django 需要在你的 PYTHONPATH 中”。我是 Python 新手,所以我不知道这意味着什么。有人可以向我解释一下吗?

0 投票
4 回答
7857 浏览

python - 重用python代码的最佳实践

我编写了一个 python 库应用程序(其中包含几个 *.py 文件)。而且我的几个python项目需要重用库应用程序中的代码。重用python代码的推荐最佳实践是什么?目前我已经想到了三个选项:

  1. 复制和粘贴。这与最佳实践相去甚远。它违反了 DRY 原则。(不要重复自己。)
  2. 将库应用程序的文件夹添加到环境变量 PYTHONPATH:export PYTHONPATH=/path/to/library/app中。然后同一台计算机上的每个项目都可以引用库应用程序中的代码。
  3. 并将库应用程序的文件夹放在 python 代码中的 sys.path 中:sys.path.append('/path/to/library/app')

在以上三个选项中,您更喜欢哪一个?与其他两种选择相比,它有什么优势?你还有其他更好的选择吗?非常感谢有多年python开发经验的人能回答这个问题。