zip_safe = False在setup.py文件中不起作用

pja*_*ain 9 python egg setuptools setup.py

我想将我的项目安装为文件夹而不是.egg文件.所以我在setup.py文件中的setup函数中使用了zip_safe = False

但是当我运行这个时,我的项目被安装为.egg文件而不是/Library/Python/2.7/site-packages中的目录.下面是我的setup.py文件

from setuptools import setup, find_packages

setup(name = "my-project",
    version = "0.1",
    description = "Python version of my-project",
    author = "Priyal Jain",
    author_email = "jpriyal@gmail.com",
    license="Apache 2.0",
    keywords="Python my project",
    package_dir={'': 'lib'},
    #packages=find_packages('lib'),
    packages= ['abc','pqr'],
    package_data={
        'abc.sample': ['*.yml']
    },
    zip_safe= False,
    scripts = ["abc"],
    classifiers=[
        'Environment :: Console',
        'Intended Audience :: Developers',
        'Intended Audience :: Information Technology',
        'Intended Audience :: System Administrators',
        'Intended Audience :: Telecommunications Industry',
        'Operating System :: OS Independent',
        'Programming Language :: Python',
    ],
) 
Run Code Online (Sandbox Code Playgroud)

我错过了什么?有没有其他方法将python项目安装为目录而不是.egg文件

yam*_*amm -2

包安装

您首先必须构建包。

# navigate into your python-package (where the setup.py is located)
python setup.py sdist
Run Code Online (Sandbox Code Playgroud)

这将创建一个dist/字典并创建一个 .tar.gz 文件

然后使用 pip 安装该软件包

pip install dist/<your-packagename>
Run Code Online (Sandbox Code Playgroud)

鸡蛋安装

如果您使用:

python setup.py install
Run Code Online (Sandbox Code Playgroud)

它将作为鸡蛋安装。

编辑:

下载包

基本方法:构建包 --> .tar.gz 或 .zip,然后将包解压到您需要的位置。你从 python 打包中获得 0 好处。

安装脚本的 Python 包,例如。命令行界面

纪录片

将脚本参数添加到您的 setup()

setup(
    # ...
    scripts = ['path-to/myscrypt',],
)
Run Code Online (Sandbox Code Playgroud)

你的文件名称myscript(没有 .py 结尾)应该在第一行有这个

#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)

  • 我认为这个答案与“是否有其他方法可以将 python 项目安装为目录而不是 .egg 文件”的问题不匹配 (2认同)