python - 如何在 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.
这意味着对我的新安装强制使用相同的路径是不够的,我还缺少什么?为长篇大论(或可能扼杀某些术语)道歉。
亲切的问候,
碧玉
解决方案
您对 .pth 文件的想法是正确的,但为了使其工作,您需要检查一些先决条件。显然,语法需要很好(只需给出用换行符分隔的目录位置)。一个常见的问题是人们没有将 .pth 文件放在正确的目录中(通常虽然不一定是 \Lib\site-packages)。我敢打赌,如果你检查这些,你会没事的。
**另外:如评论中所述,请注意 32 位 python 不会喜欢 64 位 DLL 和 verse-visa,因此请确保在尝试访问时运行正确版本的 python库。
推荐阅读
- python-2.7 - 如何将日志文件从 cloudwatch 日志传输到 redshift
- r - 查找给定开始和结束时间的设定范围/间隔(data.table 包)
- php - Laravel 将 url 列表传递给正确的 id
- android - 单击列表视图后,如何将一个按钮用于多个活动?
- android - Instant App 模块正在运行,但 Apk 模块无法正常工作
- php - 在php中打破部分字符串
- oracle - 完成执行的作业从 dba_jobs 中删除需要多长时间?
- powershell - 如何将存储在 JSON 文件中的数据加载到 power shell 中的数组或哈希表中?
- css - 如何存储从网站加载的 CSS 文件并将它们应用于另一个网站?
- java - Maven 和 Ant 之间的 JaCoCo 插件