2012-02-20 1 views
11

Я хотел бы создать простейший пакет (hello world package), который я мог бы установить с помощью pip в virtualenv из локального zip-файла.Создание простого пакета, который можно установить через Pip & virtualenv

В Python я бы

>> from myinstallpackage import mymodule 
>> mymodule.sayhello() 
hello ! 

Что бы в setup.py и в папке пакета?

Благодаря

ответ

15

Вы должны зарегистрироваться на http://pypi.python.org/. Затем вы можете загрузить модуль на http://pypi.python.org/pypi?%3Aaction=submit_form.

Doc на данном сайте, содержит все команды, как

Как создать модуль, который может быть загружать на зычный?

Как скачать отбой?

и т.д ...

Вы получите помощь на http://docs.python.org/distutils/index.html

Также вы можете зарегистрироваться непосредственно на http://docs.python.org/distutils/packageindex.html

+0

Вопрос в том, как создать базовый модуль pip? Я не нашел надлежащей документации о том, как я могу создать базовый пакет, устанавливаемый в пакете. – gpasse

+0

Проверьте отредактированный ответ. – Nilesh

+0

Кажется, что мне действительно нужно – gpasse

1

Вы также можете попробовать этот код:

def create(name,path_to_code,description,version,username,password,readme='',keywords=[]): 
    import os 
    from os.path import expanduser 
    with open(path_to_code,'r') as file: 
     code=file.read() 
    os.system('mkdir '+name) 
    with open(os.path.join(os.getcwd(),name+"/code.py"),'w') as file: 
     file.write(code) 
    with open(os.path.join(os.getcwd(),name+"/README.txt"),'w') as file: 
     file.write(readme) 
    with open(os.path.join(expanduser("~"),".pypirc"),'w') as file: 
     file.write(""" 
[distutils] 
index-servers=pypi 

[pypi] 
repository = https://upload.pypi.org/legacy/ 
username = %s 
password = %s 
[server-login] 
username = %s 
password = %s  
     """%(username,password,username,password,)) 
    with open(os.path.join(os.getcwd(),name+"/setup.py"),'w') as file: 
     file.write(""" 
from setuptools import setup 

setup(
     name='%s', # This is the name of your PyPI-package. 
     keywords='%s', 
     version='%s', 
     description='%s', 
     long_description=open('README.txt').read(), 
     scripts=['%s']     # The name of your scipt, and also the command you'll be using for calling it 
) 
     """%(name,' '.join(keywords),version,description,'code.py')) 

    os.system("cd "+name+";python3 setup.py register sdist upload -r https://upload.pypi.org/legacy/") 

Затем запустите его и поместите параметры в функцию create. Это сделает пакет и выгрузит его с именем.