设置python包

Posted

技术标签:

【中文标题】设置python包【英文标题】:Setting up python package 【发布时间】:2017-05-02 02:59:30 【问题描述】:

我在设置我的 python 包时遇到了一些麻烦。

我正在尝试使用 PYPI 使其可通过 pip 安装。

这是我的项目结构:

     |-scum
      \
       | LICENSE
       | MANIFEST
       | README.md
       | README.rst
       | scum
       | scum.py
       | setup.py
       |
       |- |modules
       |   \ 
       |    | __init__.py
       |    | browse.py
       |    | popup.py
       |    | term.py
       |
       |- |resources
       |   \  
       |    | config.txt
       |    | help.txt
       |    | start_up.txt
       |    | tabs.dat

我需要能够导入modules 中的文件,并且我需要我的主文件scum.py 才能访问resources 中的文件

这是我的 setup.py:

import sys

from distutils.core import setup

from pkgutil import walk_packages

import modules
import resources

if sys.version_info[0] < 3:
    sys.exit("Scum requires Python 3.")

VERSION = '0.2'

setup_kwargs = 
    "version": VERSION,
    "description": 'Scum text editor',
    "author": 'Christian Careaga',
    "author_email": 'christian.careaga7@gmail.com',
    "url": 'https://github.com/CCareaga/scum',
    "download_url": "https://github.com/CCareaga/scum/zipball/" + VERSION,
   "classifiers": [
    "License :: OSI Approved :: MIT License",
    "Intended Audience :: Developers",
    "Programming Language :: Python :: 3",
    "Topic :: Utilities",
    "Topic :: Text Editors",
    ],
   "data_files": [("", ['README.rst']),
               ("resources", ['config.txt', 'help.txt', 'start_up.txt', 'tabs.dat'])]



if __name__ == '__main__':
    setup(
        name='scum',
        py_modules=['scum'],
        scripts=['scum'],
        packages = ['modules'],
        include_package_data=True,
        long_description=open('README.rst').read(),
        **setup_kwargs
        )

这个 setup.py 文件不起作用,我在测试后更改了一些东西,但我不知道如何在不创建全新标签和版本号的情况下上传我的包的新版本。

任何帮助都将不胜感激,我很难找到不适合非常基本软件包的好的文档。

【问题讨论】:

你得到什么错误?从哪里来? @RichArt 好吧,我可以注册并上传它,但是当我尝试安装时,我收到一个错误,说没有模块资源,所以我当然把它拿走了。现在我尝试重新上传并且 pip 告诉我没有与我请求的版本匹配的版本(v0.2),但它在 pypi 站点上。我基本上需要指导,因为我似乎无法弄清楚...... 【参考方案1】:

我没有遇到同样的问题,但有类似的问题。为了解决这个问题,我刚刚删除了 PyPi 版本,还删除了 setup.py 文件自动生成的文件(我在一个文件夹中有几个版本文件),然后用 twine 重新上传了所有内容。

你可以试试,不过我想你也得改一下版本号!

也可以在这里查看我的答案:PyPI 400 upload error。它可能会帮助你。

【讨论】:

是的,这很有帮助!我想我可以把它清除并重新上传。我还发现我可以运行python setup.py install,它会做和 pip 一样的事情。现在我在实际运行程序时遇到了一些非常奇怪的错误...... 哦!我让它工作了!我认为该脚本是由 bash 而不是 python 运行的...我需要#!/usr/bin/env python...傻我!谢谢!

以上是关于设置python包的主要内容,如果未能解决你的问题,请参考以下文章

python 设置默认的导包路径

python 设置数据包捕获的监视器接口设置

sublime 中使用不了 python 自定义包

无法在 Python 中接收 UDP 数据包

python粘包现象

怎么改变python安装包路径