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

Posted

技术标签:

【中文标题】zip_safe = False 在 setup.py 文件中不起作用【英文标题】:zip_safe = False is not working in setup.py file 【发布时间】:2015-05-13 05:56:59 【问题描述】:

我想将我的项目安装为文件夹而不是 .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',
    ],
) 

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

【问题讨论】:

【参考方案1】:

包安装

您首先必须构建包。

# navigate into your python-package (where the setup.py is located)
python setup.py sdist

这将创建一个dist/ 目录并创建一个 .tar.gz 文件

然后你用 pip 安装那个包

pip install dist/<your-packagename>

鸡蛋安装

如果你使用:

python setup.py install

它将作为鸡蛋安装。

编辑:

下载包

基本方法:构建包 --> .tar.gz 或 .zip 并在需要的位置解压缩包。你从 python 打包中获得 0 收益。

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

docu

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

setup(
    # ...
    scripts = ['path-to/myscrypt',],
)

名称为 myscript(没有 .py 结尾)的文件应该在第一行包含此文件

#!/usr/bin/env python

【讨论】:

我想让脚本可执行,这样我就可以从命令行运行它。但是如果我通过制作 dist 文件夹来运行,那么它将完整的文件放在 /usr/local/bin 中而不是编译的文件中。 好的,我不明白你的问题;-) 你想要一个安装脚本的包。 github.com/arteria/virtualenv-mgr/blob/master/setup.py#L21我编辑我的帖子 我认为这个答案与“是否有其他方法可以将 python 项目安装为目录而不是 .egg 文件”的问题不匹配

以上是关于zip_safe = False 在 setup.py 文件中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

inno setup 打包使用超级管理员权限

查找哈希与哈希数组的部分匹配

[Inno Setup] 如何读取命令行输入的参数

树莓派点亮小灯泡

如何为 Python 安装 OpenSSL

如何使用WebSocket