【问题标题】:What are ways of using external modules and libraries in Python?在 Python 中使用外部模块和库的方法有哪些?
【发布时间】:2022-01-06 06:57:51
【问题描述】:

Mark Lutz 的《Learning Python》一书指出,在 Python 中可以使用各种类型的外部模块,包括 .py 文件、.zip 档案、C/C++ 编译库等。我的问题是,通常如何处理每种类型的模块的安装? 例如,我知道要使用.py 模块,我只需要使用import 来定位它。 .dll.a 之类的呢?或者例如,我在 GitHub 上发现了一个有趣的库,它没有安装手册。我如何知道要导入哪些文件? 另外,除了pip,还有什么安装模块的方法吗?

【问题讨论】:

  • 大多数情况下,您只需pip install module 模块,然后import module - 这也适用于正确打包的压缩和编译模块。是否有您想知道的特定 模块? 可能的包装方式非常多,一概而论并不可行。
  • @MisterMiyagi 是的,我想知道我是否可以使用我在 C 中构建的“本土”库。它有几个只生成随机数的函数。我想在我的 Python 代码中使用它。那可能吗?我该怎么做?
  • 您可能想查看C-API descriptionPackaging Guide。我不认为把它全部都说出来对于Stack Overflow Q&A 来说不够集中。

标签: python python-module lib


【解决方案1】:

答案取决于你想做什么。 例如,您可以使用Ninja 来使用C++ 模块,而cython 则用于C,并且几乎所有类型的编译代码都有各种包。 您可以通过pip 使用pypi 软件包存储库或使用包含setup.py 文件的克隆存储库来安装软件包。 任何其他基于 python 的 repo 都可以通过自定义构建脚本(他们将提供)或直接导入相关的 Python 文件来导入。这将需要您深入研究代码并检查相关文件是什么。

【讨论】:

  • 所以基本上,大多数时候,GitHub 上的各种 repos 都会为我提供 setup.py 文件,我将通过 python setup.py install 运行该文件?关于 C++ 库。例如,我不能正常地使用我以前用 CMake 构建的 import .dll 文件吗?他们是否需要特殊的构建/链接方式或其他方式?
  • 您不能直接使用 .dll,您需要某种“桥梁”才能在 python 中使用它们。这就是像 Cython 这样的包进来的地方。有时你可以直接在 repos 上使用 Pip,检查这个:stackoverflow.com/questions/20101834/…
【解决方案2】:

另外,除了pip之外,还有什么方法可以安装模块吗?

是的,根据Installing Python Modules (Legacy version) 使用distutils 打包的模块应该下载、解包和命令

python setup.py install

或类似的应该运行。请注意

整个distutils 包已被弃用并将被删除 在 Python 3.12 中。

【讨论】:

    猜你喜欢
    • 2018-11-05
    • 2013-06-20
    • 2020-05-06
    • 2016-05-19
    • 1970-01-01
    • 1970-01-01
    • 2019-05-13
    • 1970-01-01
    • 2015-04-03
    相关资源
    最近更新 更多