Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.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 setuptools setup.py能否定义多个包,以及如何分别引用它们?_Python_Setuptools - Fatal编程技术网

Python setuptools setup.py能否定义多个包,以及如何分别引用它们?

Python setuptools setup.py能否定义多个包,以及如何分别引用它们?,python,setuptools,Python,Setuptools,我保持一个良好的状态。它可通过setuptools安装,并在上提供。框架提供的某些特性只与开发相关,不应该在生产环境中真正可用 如果我按照以下方式配置setuptools并将其安装在virualenv中,那么事情似乎确实可行 setup(name='prestans', version = __version__, install_requires = ['WebOb>=1.5',], ... ) setup(name='prestans-devel',

我保持一个良好的状态。它可通过setuptools安装,并在上提供。框架提供的某些特性只与开发相关,不应该在生产环境中真正可用

如果我按照以下方式配置setuptools并将其安装在virualenv中,那么事情似乎确实可行

setup(name='prestans',
      version = __version__,
      install_requires = ['WebOb>=1.5',],
...
)

setup(name='prestans-devel',
      version = __version__,
      install_requires = ['prestans', 'Click>=5.1', 'Jinja2>=2.2.8'],
...
)
我想问的问题包括:

  • 这样做合法/正确吗?还是有更好的方法来处理这个问题
  • 当我使用
    python setup.py sdist upload
    发布发行版时,这是否有效?(在不填充pypi列表的情况下测试这一点非常困难,当然,除非我错过了一个干运行选项)

谢谢您的时间。

我不确定这样做是否正确。事实上,依我看,这似乎是一种不太干净的方式。最好的办法是在
setup.py
中安装所需的软件包,并在
requirements.txt
文件中列出重新创建开发环境所需的所有软件包

您可以检查此链接以了解明确的区别:


我不确定这样做是否正确。事实上,依我看,这似乎是一种不太干净的方式。最好的办法是在
setup.py
中安装所需的软件包,并在
requirements.txt
文件中列出重新创建开发环境所需的所有软件包

您可以检查此链接以了解明确的区别:


您可以通过上传到testpypi服务器进行测试。几乎相同的命令,但提供了一个额外的
-ihttps://testpypi.python.org/pypi
所有命令的参数。提到它。但一定要从测试服务器上删除上传的内容,因为谷歌会对其进行索引。就我而言,它在谷歌上的排名高于实际的pypi页面;)@m00am谢谢,非常方便!您可以通过上传到testpypi服务器进行测试。几乎相同的命令,但提供了一个额外的
-ihttps://testpypi.python.org/pypi
所有命令的参数。提到它。但一定要从测试服务器上删除上传的内容,因为谷歌会对其进行索引。就我而言,它在谷歌上的排名高于实际的pypi页面;)@m00am谢谢,非常方便!我确实考虑过将开发人员工具一起分离到一个单独的存储库中。我宁愿附加到相同的名称空间,例如
prestans
prestans.devel
,并且不确定在两个单独的发行版中这样做是否正确。感谢您花时间回复。还找到了一些。找到了Flask关于写作的文档。实际上,插件开发人员有自己的名称空间(基于约定),Flask通过注册表将这些名称空间注入自己的名称空间。总而言之,我决定不挂断电话,不想附加到那个名称空间,继续使用类似于
prestans\u devel
的东西作为一个单独的名称空间。在我的例子中,由于用户永远不会直接在他们的代码中导入,所以差别很小。我确实考虑过将开发人员工具分离到一个单独的存储库中。我宁愿附加到相同的名称空间,例如
prestans
prestans.devel
,并且不确定在两个单独的发行版中这样做是否正确。感谢您花时间回复。还找到了一些。找到了Flask关于写作的文档。实际上,插件开发人员有自己的名称空间(基于约定),Flask通过注册表将这些名称空间注入自己的名称空间。总而言之,我决定不挂断电话,不想附加到那个名称空间,继续使用类似于
prestans\u devel
的东西作为一个单独的名称空间。在我的例子中,因为用户永远不会直接在他们的代码中导入它,所以差别很小。