Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与模块需求共享python脚本?_Python_Pip - Fatal编程技术网

与模块需求共享python脚本?

与模块需求共享python脚本?,python,pip,Python,Pip,我是python新手,我很好奇python是否有类似于npm安装的东西,可以为我的脚本安装所需的包。我查看了setup.py自述文件,它看起来主要是为了创建一个tarball发送给pip,这不是我想要的 我希望能够签出源代码,然后运行它。当我要求同事使用脚本时,他们遇到导入失败,不得不手动pip安装,这是一种糟糕的体验 我的setup.py文件是 #!/usr/bin/env python from distutils.core import setup setup(name='Add-We

我是python新手,我很好奇python是否有类似于
npm安装的东西,可以为我的脚本安装所需的包。我查看了
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
要好。

您误解了
安装程序的参数。
packages
参数用于指定您提供的包,而不是这些包的依赖项

Per:

通过向
setup()
提供requires关键字参数,可以指定对其他Python模块和包的依赖关系。该值必须是字符串列表。每个字符串指定所需的包,以及可选的足够版本


您也可以考虑使用“代码> didituLS< <代码>(从StuuPoToE导入安装程序切换到<代码>),并指定<代码>安装程序要求(参见)-参见例如

,您可以在<代码>安装程序> Py < /代码>中指定依赖关系,如果这就是您的意思,那么<代码> Python Stupp.Py安装< /COD>也将安装这些代码。或者,如果您的脚本不需要太多的安装,请提供一个安装包,以便他们可以更方便地一次安装所有内容。我在其中添加了依赖项,但当我执行
python setup.py
时,它会抱怨模块文件夹不在那里。我希望它只是安装,如果它丢失,像npm的方式做什么?不确定我遗漏了什么如果你的
设置.py不起作用,也许你可以把它和你看到的抱怨一起分享?如果你不知道你在做什么,就很难提供有用的建议;非常感谢。@jonrsharpe感谢您的帮助,我已经更新了有效的问题,这是python处理包分发的惯用方法吗?没有pip的解决方案?看起来应该用源代码替换安装python包的OPHaving
pip
easy\u install
,是的。我相信还有其他方法,但这是通过pip处理python包时的默认方法。@devshorts您在GitHub和其他地方看到的许多包都有
setup.py
requirements.txt
——通常前者包括实际使用包的最低要求,后者包括用于实际开发的额外模块(例如,
pylint
sphinx
,…)@devshorts没有问题。请注意,如果您使用了
virtualenv
来设置开发环境,使其仅包含此软件包所需的内容,则可以使用
pip freeze>requirements.txt
轻松创建需求文件。