与模块要求共享python脚本?

dev*_*rts 4 python pip

我是python的新手,并且好奇如果python有类似的东西npm install会pip安装我所拥有的脚本所需的包.我已经查看了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'],
     )
Run Code Online (Sandbox Code Playgroud)

当我跑它时

$ python setup.py install
running install
running build
running build_py
error: package directory 'requests' does not exist
Run Code Online (Sandbox Code Playgroud)

我有一个小脚本,位于使用该requests软件包的setup.py旁边,我希望它安装在'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
Run Code Online (Sandbox Code Playgroud)

小智 5

requirements.txt在项目的根目录中创建文件,并使用所需的版本添加必要的Python包.

然后运行$pip install -r requirements.txt以安装您在requirements.txt文件中指定的所有内容.

不确定这是否是你需要的,但这比运行$pip install <package name>好几次要好.

  • @devshorts,您在 GitHub 和其他地方看到的许多包都会同时包含 `setup.py` 和 `requirements.txt` - 通常前者包含实际使用该包的最低要求,而后者包含用于实际开发的额外模块(例如`pylint`、`sphinx`、...)。 (2认同)
  • @devshorts 没问题。请注意,如果您使用 `virtualenv` 来设置开发环境,使其仅包含此包所需的内容,则可以使用 `pip freeze &gt; requirements.txt` 轻松创建需求文件。 (2认同)