gpt4 book ai didi

python - setup.py 安装与 pip 安装

转载 作者:行者123 更新时间:2023-12-02 16:26:17 37 4
gpt4 key购买 nike

我想创建一个 python 包,它将在构建运行时从其 git 存储库中克隆,因此我将在构建代理中拥有源代码。然后我想将 python 包作为命令行工具运行,该包称为 environment_manager

最初我以为我会按照教程创建一个简单的 setup.py,尽管事实证明这比我想象的要困难得多,而且每当我运行 python setup .py install --force 我无法使用我安装的包,通常是找不到模块或键入时无法识别命令。

我发现,如果我简单地使用 pip install . 安装,那么我实际上能够从命令行使用该工具并且它可以工作。我不明白有什么区别,或者为什么这只在执行 pip 安装方法时有效。

下面是setup.py文件,我看不出有什么问题:

from setuptools import setup, find_packages, find_namespace_packages
import pathlib

here = pathlib.Path(__file__).parent.resolve()

# Get the long description from the README file
long_description = (here / 'README.MD').read_text(encoding='utf-8')

setup(
name='environment_manager',
version='1.0.0',
package_dir={'': 'src'},
packages=find_namespace_packages(where='src', include='environment_manager.*'),
python_requires='>=3.8, <4',
install_requires=['boto3', 'botocore', 'pyyaml'],
extras_require={
'dev': ['pre-commit', 'black', 'pylint'],
'test': ['pytest', 'pytest-mock', 'coverage'],
},
entry_points={
'console_scripts': [
'environment-manager=environment_manager.environment_controller:main',
],
}
)

我的项目结构如下:

environment_manager
/src
conf/
environment_manager/
environment_controller.py
config_parser.py
command.py
test/
unit_tests.py

我认为从命令行安装和运行该工具的正确方法是使用 setup.pysetuptools 但它似乎更容易并且如果我只是用 pip 安装它,它实际上可以工作。

是否通过 setup.py 使用 pip 安装它是正确的(因为当我键入 pip list 时包出现的两种方式)并且在那里我的 setup.py 脚本有什么问题吗?该脚本取自 pypa 示例项目,我删除了大部分不需要的内容。

最佳答案

setup.py 是一个 python 文件,它通常会告诉您您要安装的模块/包已经使用 Distutils 打包和分发,这是分发 Python 模块的标准。这使您可以轻松安装 Python 包。通常这样写就足够了:$ pip install .


换句话说,setup.py 是一个打包文件,而 pip 是一个包管理器,因此你应该有 setup.py 文件来能够使用 pip 安装。

关于python - setup.py 安装与 pip 安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64435188/

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