【发布时间】: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