首页 > 解决方案 > 如何在 Python 安装中重用模块?

问题描述

我正在尝试导入一个 python (2.7.5) 模块,但我不确定我是否以正确的方式进行操作。我通常在 Jupyter Notebook 中工作(在单独的 Conda 环境中),以使每个项目都有条理。现在我正在尝试导入一个名为 otbApplication 的模块,它是一个名为 Orfeo Toolbox 的 GIS 程序的 Python 绑定。问题是,Orfeo Toolbox(连同 QGIS)带有它自己的 Python 安装(和后续路径),甚至它自己的 CMD 提示符(假设您使用 OSGEO4W)。如果我使用这个 CMD 提示符启动 Python 并导入 otbApplication,它工作正常。但在这种情况下,我想安装更多的软件包,只在我自己的“常规”环境(Jupyter Notebook)中工作。

您通常应该如何在 Python 安装之间重用模块?

我已经尝试将包含模块路径的 .pth txt 文件放在不同 Python 安装的 sys.path 位置之一中,但它甚至找不到它。我试图通过在与模块相同的文件夹中托管一个笔记本(具有相同的 Python 安装)然后导入它来强制它。我收到以下错误,这让我怀疑我是否走错了路:

Python 2.7.5 |Continuum Analytics, Inc.| (default, Jul  1 2013, 12:37:52) 
[MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import otbApplication
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "otbApplication.py", line 28, in <module>
_otbApplication = swig_import_helper()
File "otbApplication.py", line 24, in swig_import_helper
_mod = imp.load_module('_otbApplication', fp, pathname, description)
ImportError: DLL load failed: The specified module could not be found.

这意味着对我的新安装强制使用相同的路径是不够的,我还缺少什么?为长篇大论(或可能扼杀某些术语)道歉。

亲切的问候,

碧玉

标签: pythonanacondagisqgisosgeo

解决方案


您对 .pth 文件的想法是正确的,但为了使其工作,您需要检查一些先决条件。显然,语法需要很好(只需给出用换行符分隔的目录位置)。一个常见的问题是人们没有将 .pth 文件放在正确的目录中(通常虽然不一定是 \Lib\site-packages)。我敢打赌,如果你检查这些,你会没事的。

**另外:如评论中所述,请注意 32 位 python 不会喜欢 64 位 DLL 和 verse-visa,因此请确保在尝试访问时运行正确版本的 python库。


推荐阅读