gpt4 book ai didi

python - 使用自定义Python包

转载 作者:行者123 更新时间:2023-11-30 22:16:13 25 4
gpt4 key购买 nike

我对 Python 相当陌生,我真的不知道如何使用自定义包或其开发生命周期。

我一直在开发一个 Python 库,旨在供生产环境中指定文件夹中的许多脚本使用。

目前,该库和使用它的脚本从开发生命周期的角度来看高度耦合,因为它的开发仍处于早期阶段。

问题是,如何测试从脚本使用该库时是否正常工作?

到目前为止,为了能够从脚本导入自定义库,我考虑了 3 种不同的替代方案:

  1. 作为带有 pip 等的安装包

  2. 以某种方式将包下载到目录并更改pythonpath

  3. 作为脚本文件夹中的目录

根据我使用其他语言的经验,选项 1 是最好的,因为它可能更容易处理包发布,并且一切都将以“标准”方式进行,但就我而言,由于包源,可能会有些困难托管在与生产环境隔离的私有(private) Gitlab 服务器中。

在我看来,选项 2 和 3 像是变通办法,不太像使用自定义库的“好方法”。

Python 中是否还有其他替代方法可以有效地使用包?

最佳答案

从如何使用自定义包开始

您必须定义该包的用途。我的意思是,它对每个人都有用,或者只对你有用。如果是第一种情况,那么最好的方法是将其发布到 PyPI 上(在这种情况下,请遵循所有步骤)。如果是第二个目的,则省略第5步。

然后,无论您的软件包目的是什么,第一步都是:

  1. 开发包(尝试记录并测试它)。 PyCharm是一个很好的IDE,可以帮助创建单元测试。我建议您查看以下链接:Creating-and-running-Python_Test

    A Project Test folder structure that I have been working on

  2. 第二步是创建 setup.py 文件。 setup.py 文件可以包含很多字段。这里有一个例子:

      from setuptools import setup


    setup(
    name='mdutils',
    version=1.0,
    license='BSD',
    author='Didac Coll',
    author_email='didaccoll_93@hotmail.com',
    maintainer='Dídac Coll',
    maintainer_email='didaccoll_93@hotmail.com',
    description='A package, useful to create Markdown files while executing python code.',
    long_description=open('README.md').read(),
    platforms=['Python 3.6'],
    packages=['mdutils', 'mdutils.tools', 'mdutils.fileutils'],
    include_package_data=True,
    zip_safe=False,
    classifiers=['Development Status :: 4 - Beta',
    'Operating System :: OS Independent',
    'Programming Language :: Python',
    'Programming Language :: Python :: 3.6',
    'Topic :: Utilities',
    'License :: OSI Approved :: BSD License'])
  3. 创建软件包后,您必须使用以下命令 python setup.py develop 测试发行版

  4. 如果一切正常,现在您可以使用以下命令 python setup.py sdist 创建您的发行版。这将生成一个名为 dist 的新文件夹,您可以在其中找到 tar.gz 文件。如果您有兴趣创建 Windows 发行版,我建议您使用下一个命令 python setup.py sdist --format=zip 。通过这种方式,您将创建一个 zip 文件到 dist 文件夹。

    现在您在压缩文件中拥有了自己的软件包分发版。所以如果你想要安装到项目中,只需要使用 pip: pip install mdutils-
    1.0.zip
    。您还可以使用以下 python 命令升级它:python
    install --upgrade mdutils-2.0.zip
    .

    执行前面的命令会将您的包安装到站 pip 包文件夹中。

    在这里,您会找到很多有关打包和分发的信息:https://packaging.python.org/tutorials/distributing-packages/

这里还有一个很好的教程:https://python-packaging.readthedocs.io/en/latest/

  • 最后,如果您的项目运行正常,您可以将其发布到 PyPi 上。您必须创建一个帐户。获得后,请使用以下命令来注册您的软件包:python setup.py register 。我强烈建议您在尝试在 PyPI 上发布之前先在 TestPyPI 上进行测试。在这里创建另一个帐户:https://test.pypi.org/并在 PyCharm 终端上输入以下命令:twine upload --repository-url https://test.pypi.org/legacy/ dist/* (有关 TestPyPI 的更多信息 here )。
  • 关于python - 使用自定义Python包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50019187/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com