zoukankan      html  css  js  c++  java
  • Python 入门1 上传代码

      Hello.大家晚上好,现在让我们来学习一下怎么共享你的Python代码.

      分享促使社区的发展,我认为,Python会变得强大的一个重要理由就是代码的共享。事实上,Python的确在代码的共享上下了很大的功夫。每一个人都可以去发布自己写好的包。然后Upload到Pypi上,让大家去下载利用。这真的是一件好事。

      好,那么让我们来学习一下,怎么Upload自己的Python包吧.

      第一步,你要到https://pypi.python.org/pypi去申请一个自己的账户,这个账户是之后你用来Upload和Download包的时候用的。就在右上角,有一个Register.点击进去,自己注册。这里发个小牢骚,这个密码的设置还真严格,还要大小写,坑爹..

      第二步,你自己随便写个Python小代码。例如,我在自己的桌面上写了个HelloWorld.py的代码,里面就一行 print("Hello World").

      第三步,新建一个文件夹。取名的话,可以随便取。,里面有如下文件

     让我们分别看一下里面有什么内容吧 这个是HelloWorld包的

    # This is a test package
    
    print("hello world")

    这个是Test包的

    print(123)

    这个是setup包的

    from distutils.core import setup
    
    setup(
        name ='TTT2323',#1. 会在pypi中显示出来,表示你的包名     2. 这个名字要是独一无二的,不然会报错。而且在pypi中是忽略大小写的。我之前
        #写的是HelloWorld.但是在pypi中有个helloworld,结果就不能注册了
        version='1.2.0',
        author='hwb',
        author_email='test@test',
        description='it can print hellp world',
        py_modules=['HelloWorld','Test'],   #空间名称,可以有多个,对应相应的py文件
        )

      第四步,所有的准备文件都弄好了,现在就开始最关键的upload吧.这里以windows作为演示。linux可以代替命令.其实一样的.代码如下

    C:UsershwbDesktopHel> 
    C:UsershwbDesktopHel>python setup.py register
    running register
    running check
    warning: check: missing required meta-data: url
    
    We need to know who you are, so please choose either:
     1. use your existing login,
     2. register as a new user,
     3. have the server generate a new password for you (and email it to you), or
     4. quit
    Your selection [default 1]: #我们用1 名字和密码就是上面注册pypi的那个
    
    Username: hwb
    Password:
    Registering TTT2323 to http://pypi.python.org/pypi
    Server response (200): OK
    I can store your PyPI login so future submissions will be faster.
    (the login will be stored in C:Usershwb.pypirc)
    Save your login (y/N)?y #保存下来,以后就不用输入密码了

      接下来就是要

      

    C:UsershwbDesktopHel>python setup.py sdist upload
    running sdist
    running check
    warning: check: missing required meta-data: url
    
    warning: sdist: manifest template 'MANIFEST.in' does not exist (using default fi
    le list)
    
    warning: sdist: standard file not found: should have one of README, README.txt
    
    writing manifest file 'MANIFEST'
    creating TTT2323-1.3.0
    making hard links in TTT2323-1.3.0...
    hard linking HelloWorld.py -> TTT2323-1.3.0
    hard linking Test.py -> TTT2323-1.3.0
    hard linking setup.py -> TTT2323-1.3.0 
    creating dist
    creating 'distTTT2323-1.3.0.zip' and adding 'TTT2323-1.3.0' to it
    adding 'TTT2323-1.3.0HelloWorld.py'
    adding 'TTT2323-1.3.0PKG-INFO'
    adding 'TTT2323-1.3.0setup.py'
    adding 'TTT2323-1.3.0Test.py'
    removing 'TTT2323-1.3.0' (and everything under it)
    running upload
    Submitting distTTT2323-1.3.0.zip to http://pypi.python.org/pypi
    Server response (200): OK

      好了,这时候大家可以上传了.很神奇,是吧...好了,既然可以上传,那么下载下来我们要怎么用那些py文件呢?

      有2种方法,一个就是在sys.path里面添加进入你要的文件的路径,第二个方法就是把你下载的文件安装到你的本地系统中。我们现在就讲下第二种方法的解决之道

      假设你已经下载了一个文件。我们这里以我自己写的那个文件作为例子讲解,首先下载下来。解压之后,发现里面有4个文件

    用命令行来运行以下命令

    C:UsershwbDownloadsTTT2323-1.3.0TTT2323-1.3.0>python setup.py install
    running install
    running build
    running build_py
    creating build
    creating buildlib
    copying HelloWorld.py -> buildlib
    copying Test.py -> buildlib
    running install_lib
    copying buildlibHelloWorld.py -> D:development_environmentpythonLibsite-pa
    ckages
    copying buildlibTest.py -> D:development_environmentpythonLibsite-packages
    
    byte-compiling D:development_environmentpythonLibsite-packagesHelloWorld.py
     to HelloWorld.cpython-33.pyc
    byte-compiling D:development_environmentpythonLibsite-packagesTest.py to Te
    st.cpython-33.pyc
    running install_egg_info
    Writing D:development_environmentpythonLibsite-packagesTTT2323-1.3.0-py3.3.
    egg-info
    View Code

     你在你安装的python/Lib/site-packages 下面就会发现安装了Test HelloWorld 怎么样很神奇,是吧。在IDLE中输入 

    import HelloWorld 
    import Test

    试试看?哈哈,神奇的一幕出现了吧..

      好了,明天继续。明天讲点基本数据类型吧...

    如果转载,请标明出处:http://www.cnblogs.com/hwb1992/

  • 相关阅读:
    6.1.1.1 属性类型之数据属性
    6.1 理解对象
    5.7.2.4 random() 方法
    5.7.2.3 舍入方法
    5.7.2.2 min()和max()方法
    5.7.2.1 Math对象
    5.7.1.4 window对象
    frontend2_s9_part2_fe_d48_form
    s10_part3_django_basic.md
    frontend1_s9_part2_d47_html
  • 原文地址:https://www.cnblogs.com/hwb1992/p/3360358.html
Copyright © 2011-2022 走看看