我有一个setup.py
文件用于我正在处理的项目,需要提供几个尚未在奶酪店中发布的第三方软件包。其中一个是来自这个git存储库的'spine'和'pyguts'模块:
https://github.com/terrysimons/spine-python
通常我可以通过在我的setup.py文件中指定以下项目来安装gitgub中的东西(为清楚起见,省略了几行):
#! /usr/bin/python
# Encoding: UTF-8
from setuptools import setup, find_packages
setup(
# More stuff in here...
dependency_links=[
'https://github.com/bitcraft/PyTMX/archive/master.zip#egg=PyTMX',
],
install_requires=[
'PyTMX',
],
)
但是,这只能起作用,因为PyTMX在存储库的根目录中有setup.py
个文件。
如果我尝试为spine
和pyguts
存储库执行类似操作,请执行以下操作:
#! /usr/bin/python
# Encoding: UTF-8
from setuptools import setup, find_packages
__version__ = '0.0.1'
setup(
dependency_links=[
'https://github.com/bitcraft/PyTMX/archive/master.zip#egg=PyTMX',
'https://github.com/terrysimons/spine-python/archive/master.zip#egg=spine',
],
install_requires=[
'PyTMX',
'spine',
],
)
然后当我运行python setup.py install
时,distutils抱怨:
Searching for spine
Best match: spine [unknown version]
Downloading https://github.com/terrysimons/spine-python/archive/master.zip#egg=spine
Processing master.zip
error: Couldn't find a setup script in /tmp/easy_install-OXsH6T/master.zip
当setup.py
文件不在软件包存储库的根目录中时,如何安装distutils来安装软件包?
答案 0 :(得分:0)
据我所知,这方面的方法是将包中的模块作为子目录包含在内,而不是安装它们。
显然,这意味着您无法直接从模块外部访问它们。不过,您仍然可以import my_module.my_submodule
当他们准备好与主模块分离时,只需为它们制作新的包。