Python Windows 中的配置 - 模块位置 - pip 与 Eclipse/Liclipse
Python configuration in Windows - Module locations - pip vs Eclipse/Liclipse
我正在尝试在 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 条目之前。所以,在我看来这可能是版本冲突?
我认为最好的表达方式是回答我自己的问题。
我的问题的根源是作为 Visual Studio 的一部分安装的 Python 副本与我 运行 几天前单独安装的 Python 之间的冲突.
我想当我在一两年前安装 Visual Studio 时,我选择添加 Python 支持,因为我曾考虑将其作为副业学习。当我最终真正需要 Python 时,我忘记了我已经这样做了。所以,我又安装了它。
我找到 this page 并进入并删除了全局区域和项目属性中对任何版本 Visual Studio 的所有引用。我从 PYTHONPATH 中删除了 Visual Studio。这似乎已经清除了所有内容。
我正在尝试在 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 条目之前。所以,在我看来这可能是版本冲突?
我认为最好的表达方式是回答我自己的问题。
我的问题的根源是作为 Visual Studio 的一部分安装的 Python 副本与我 运行 几天前单独安装的 Python 之间的冲突.
我想当我在一两年前安装 Visual Studio 时,我选择添加 Python 支持,因为我曾考虑将其作为副业学习。当我最终真正需要 Python 时,我忘记了我已经这样做了。所以,我又安装了它。
我找到 this page 并进入并删除了全局区域和项目属性中对任何版本 Visual Studio 的所有引用。我从 PYTHONPATH 中删除了 Visual Studio。这似乎已经清除了所有内容。