应用开发者应该在setup.py
和requirements.txt
中放置什么? app 是否应该有setup.py
?
docs似乎只涵盖了编写模块的场景。但在应用程序中,应该如何编码包和模块依赖?同时使用setup.py和requirements.txt?
我已经处理了一个带有一些可疑编码的2.7.8项目,我不确定这个setup.py
是否合理。我对样板编码的数量感到惊讶:
#!/usr/bin/env python
from setuptools import setup, find_packages
import sys
if sys.argv[1] == 'test':
import multiprocessing, logging
from billiard import util
with open('requirements.txt') as f:
required = f.read().splitlines()
if sys.version_info < (2, 7, 0):
required.append('importlib')
setup(
version='0.1',
name='...',
description='...',
author='...',
author_email='...',
packages=find_packages(),
package_data={},
install_requires=required,
include_package_data=True,
tests_require=[
'billiard',
'nose==1.3'
],
test_suite='nose.collector'
)
我是Python的新手,但我发现了一些潜在的问题:
nosetests
命令。install_requires
取决于requirements.txt
的内容。但是afaik应该是相反的:requirements.txt
需要根据install_requires
部分生成。答案 0 :(得分:3)
需要手动更新的无关版本号。
setup.py
中的版本号仅在您的应用程序/部署需要时才重要。
&#39;测试&#39;进口与项目无关(&#34;多处理&#34;)。
在这种情况下,您可能需要删除它 - 它可能是过时的代码。
我们不会通过执行setup.py来运行测试;我们执行nosetests命令。
我必须查找它,但是一些测试框架使用setup.py
在单独的环境中安装项目(例如tox
,用于在各种Python解释器中测试项目)。 / p>
这取决于requirements.txt的内容,但是afaik应该是相反的:需要根据setup.py中的install_requires部分生成requirements.txt
requirements.txt
和setup.py
在Python社区中的使用各不相同。到目前为止,setup.py
需要知道安装项目时的要求,但是当您的应用程序要部署时,您可以不使用setup.py
文件而只使用requirements.txt
文件。 / p>
没有install_requires。
这可能是个问题,具体取决于您是否实际使用setup.py
来安装依赖项(如上所述,完全有可能开发和部署没有setup.py
文件的应用程序)。
似乎检查了应用程序未编码支持的python版本。
您可能需要删除它。