共享具有模块要求的 python 脚本?
Sharing a python script with module requirements?
我是 python 的新手,我很好奇 python 是否有类似 npm install
的东西可以为我拥有的脚本安装所需的包。我查看了 setup.py
自述文件,它看起来主要是为了创建一个 tarball 以发送到 pip,这不是我想要的。
我希望能够查看源代码,然后 运行 它。就目前而言,当我要求我的同事使用脚本时,他们 运行 导入失败并且必须手动 pip 安装东西,这是一种糟糕的体验。
我的 setup.py 文件是
#!/usr/bin/env python
from distutils.core import setup
setup(name='Add-Webhook',
version='1.0',
description='Adds webhooks to git repos',
author='devshorts',
packages=['requests'],
)
当我 运行 它时
$ python setup.py install
running install
running build
running build_py
error: package directory 'requests' does not exist
我有一个位于 setup.py 旁边的小脚本,它使用 requests
包,我希望将它安装在 'install'
上
$ ls
total 40
-rw-r--r-- 1 akropp JOMAX\Domain Users 1039 Feb 24 09:51 README.md
-rwxr-xr-x 1 akropp JOMAX\Domain Users 4489 Feb 27 17:01 add-webhook.py
-rw-r--r-- 1 akropp JOMAX\Domain Users 391 Feb 23 14:24 github.iml
-rw-r--r-- 1 akropp JOMAX\Domain Users 213 Apr 8 15:06 setup.py
在项目的根目录中创建 requirements.txt
文件,并添加必要的 Python 包以及您需要的版本。
然后 运行 $pip install -r requirements.txt
安装您在 requirements.txt
文件中指定的所有内容。
不确定这是否是您需要的,但这比 运行宁 $pip install <package name>
好几次。
您误解了 setup
的参数。 packages
参数用于指定您提供的包,而不是这些包的依赖项。
Dependencies on other Python modules and packages can be specified by supplying the requires keyword argument to setup()
. The value must be a list of strings. Each string specifies a package that is required, and optionally what versions are sufficient.
您也可以考虑使用 setuptools
instead of distutils
(switch to from setuptools import setup
) and specifying install_requires
(see the docs on dependency declarations) - see e.g. Differences between distribute, distutils, setuptools and distutils2?
我是 python 的新手,我很好奇 python 是否有类似 npm install
的东西可以为我拥有的脚本安装所需的包。我查看了 setup.py
自述文件,它看起来主要是为了创建一个 tarball 以发送到 pip,这不是我想要的。
我希望能够查看源代码,然后 运行 它。就目前而言,当我要求我的同事使用脚本时,他们 运行 导入失败并且必须手动 pip 安装东西,这是一种糟糕的体验。
我的 setup.py 文件是
#!/usr/bin/env python
from distutils.core import setup
setup(name='Add-Webhook',
version='1.0',
description='Adds webhooks to git repos',
author='devshorts',
packages=['requests'],
)
当我 运行 它时
$ python setup.py install
running install
running build
running build_py
error: package directory 'requests' does not exist
我有一个位于 setup.py 旁边的小脚本,它使用 requests
包,我希望将它安装在 'install'
$ ls
total 40
-rw-r--r-- 1 akropp JOMAX\Domain Users 1039 Feb 24 09:51 README.md
-rwxr-xr-x 1 akropp JOMAX\Domain Users 4489 Feb 27 17:01 add-webhook.py
-rw-r--r-- 1 akropp JOMAX\Domain Users 391 Feb 23 14:24 github.iml
-rw-r--r-- 1 akropp JOMAX\Domain Users 213 Apr 8 15:06 setup.py
在项目的根目录中创建 requirements.txt
文件,并添加必要的 Python 包以及您需要的版本。
然后 运行 $pip install -r requirements.txt
安装您在 requirements.txt
文件中指定的所有内容。
不确定这是否是您需要的,但这比 运行宁 $pip install <package name>
好几次。
您误解了 setup
的参数。 packages
参数用于指定您提供的包,而不是这些包的依赖项。
Dependencies on other Python modules and packages can be specified by supplying the requires keyword argument to
setup()
. The value must be a list of strings. Each string specifies a package that is required, and optionally what versions are sufficient.
您也可以考虑使用 setuptools
instead of distutils
(switch to from setuptools import setup
) and specifying install_requires
(see the docs on dependency declarations) - see e.g. Differences between distribute, distutils, setuptools and distutils2?