【问题标题】:Python configuration in Windows - Module locations - pip vs Eclipse/LiclipseWindows 中的 Python 配置 - 模块位置 - pip vs Eclipse/Liclipse
【发布时间】:2019-05-14 19:31:17
【问题描述】:

我正在尝试在 Windows 中使用 pdfminer,但我的 Python 配置和库位置存在很多问题。

我似乎安装了多个版本的 Python,具有多个库位置。当尝试运行一个简单的 pdfminer 文本提取示例时,我收到一个错误,它找不到要导入的 chardet。

File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\pdfminer\utils.py", line 13, in <module>
import chardet  # For str encoding detection in Py3
ModuleNotFoundError: No module named 'chardet'

运行 pip install chardet 报告:

Requirement already satisfied: chardet in c:\program files\python37\lib\site-packages (3.0.4)

因此,Liclipse 正在与 pip 不同的地方寻找它的库。

我的最终目标是将其捆绑到我可以部署的可执行文件中。处理这个问题的最佳方法是什么?我应该设置一个包含两个库位置的 PYTHONPATH 吗?我是否有版本冲突的风险?对于独立解决方案,还有其他更有意义的替代方案吗?

而且,我需要将 PYTHONPATH 指向什么级别?只是 .../lib 级别,它会在下面递归吗?我没有在文档中看到它。


编辑:我将 PYTHONPATH 添加到我的环境变量中,然后重新启动了 Liclipse。我包括了这两个位置的 .../lib 级别。行为没有变化。然后,我进入项目属性并将这两个位置添加到外部库选项卡中。还是一样的错误。

如何同步 Liclipse 和 pip 期望找到的库?


另一个编辑:当我将“C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages”添加到外部库选项卡时,我在尝试访问 pip.get_installed_distributions( )。当我没有它时,它运行良好。我的 sys.path 是:

['D:\\Users\\MyUser\\Documents\\LiClipse Workspace\\Parse TOC', 'D:\\Users\\MyUser\\Documents\\LiClipse Workspace\\Parse TOC', 'C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python36_64\\Lib', 'C:\\Program Files\\Python37\\Lib', 'C:\\Program Files\\Python37\\Lib\\site-packages', 'C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python36_64\\DLLs', 'C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python36_64', 'C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python36_64\\lib\\site-packages', 'C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python36_64\\python36.zip']

它出现在 ...\python36.zip 条目之前。那么,在我看来,这可能是版本冲突?

【问题讨论】:

  • 你如何运行你的程序?安慰? IDE?
  • 如果您打算部署它,请使用venv
  • 在 IDE 中。我正在实现一个解析器,所以我预计调试器会花很多时间。

标签: python windows configuration path version


【解决方案1】:

我认为最好的表达方式是回答我自己的问题。

问题的根源在于作为 Visual Studio 一部分安装的 Python 副本与我几天前运行的单独 Python 安装之间存在冲突。

我想在一两年前安装 Visual Studio 时,我选择添加 Python 支持,因为我曾考虑将它作为一个辅助项目来学习。当我终于真正需要 Python 时,我忘记了我已经这样做了。所以,我又安装了它。

我找到this page 并进入并删除了对全局区域和项目属性中任何版本的 Visual Studio 的所有引用。我从 PYTHONPATH 中删除了 Visual Studio。这似乎已经清除了一切。

【讨论】:

    猜你喜欢
    • 2015-04-17
    • 2019-06-21
    • 2021-07-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2011-12-09
    • 2013-02-09
    相关资源
    最近更新 更多