def package_install_requirements(path):
"""Use FPM's setup metadata library to package dependencies."""
fpm_path = os.path.split(run('gem which fpm'))
metadata_pkg_path = os.path.join(fpm_path[0], 'fpm/package')
with cd(path):
with shell_env(PYTHONPATH=metadata_pkg_path):
run('python3 setup.py --command-packages=pyfpm get_metadata '
'--output=package_metadata.json')
get(remote_path='package_metadata.json',
local_path='/tmp/package_metadata.json')
with open('/tmp/package_metadata.json') as metadata_file:
package_metadata = json.load(metadata_file)
for dependency in package_metadata['dependencies']:
if _run_fpm_python('\'%s\'' % (dependency),
warn_only=True).failed:
# If this fails, it is likely that this is an Endaga python
# package and will be fulfilled from the Endaga repo.
print('Ignoring dependency %s' % dependency)
# We don't want to clobber dependencies built previously.
run('mv -n *.%s %s' % (env.pkgfmt, PKG_DIR), quiet=True)
run('rm *.%s' % (env.pkgfmt, ), quiet=True)
run('rm package_metadata.json')
python_packaging.py 文件源码
python
阅读 18
收藏 0
点赞 0
评论 0
评论列表
文章目录