pythonsetup目錄egg,python中的setup

本文目錄一覽:

求助windows版ipython怎麼安裝和使用

python安裝完成以後,然後需要安裝ez_setup.py, 在cmd中安裝ez_setup.py,命令為:python ez_setup.py 下載pyreadline包,並且雙擊後安裝就可以了! 下載完成以後,解壓到c盤根目錄,即可 然後在cmd中安裝ipython即可,命令為:python setupegg…

python安裝完成以後,然後需要安裝ez_setup.py, 在cmd中安裝ez_setup.py,命令為:python ez_setup.py 下載pyreadline包,並且雙擊後安裝就可以了! 下載完成以後,解壓到c盤根目錄,即可 然後在cmd中安裝ipython即可,命令為:python setupegg…

python egg 如何安裝使用

安裝setuptools,用easy_install *.egg 命令來安裝

一般python setup.py install 安裝後的模塊,就能import了

安裝python模塊,建議使用pypi

一般安裝python的時候會自動安裝,在安裝目錄/Scripts下,pip.exe。可以把Scripts加進環境變數,方便使用。

用法 pip install 模塊名

python egg怎麼安裝

一 setuptools 和easy_install

setuptools:setuptools 是一組由PEAK(Python Enterprise Application Kit)開發的

Python 的 distutils 工具的增強工具,可以讓程序員更方便的創建和發布

Python的egg 包,特別是那些對其它包具有依賴性的狀況。 由 setuptools 創建和發布的包看起來和基於 distutils

發布的包沒什麼不同。最終用戶不需要事先安裝 setuptools 甚至根本不需要知道 setuptools 的存在,而程序員也不需要附上完整的

setuptools,只需要包含一個大小約 8K 的ez_setup.py腳本作為啟動模塊,就可以在最終用戶沒有安裝適當版本的

setuptools 時讓這些包自動下載和安裝 setuptools。

easy_install:

常使用python的人員,當需要安裝第三方python包時,可能會用到easy_install命令。easy_install是由

PEAK(Python Enterprise Application Kit)開發的setuptools包裡帶的一個命令,它用來自動地從來安裝egg包,相當於perl中的cpan或PPM。

二 windows上安裝setuptool

方法1: exe安裝文件 從這裡下載:setuptools-0.6c11.win32-py2.6.exe 安裝文件

如果以前曾經安裝舊版的setuptools,則在安裝之前需要將系統中的site-packages目錄(以及任何其他sys.path目錄)下的所有setuptools*.egg和setuptools.pth文件刪除。

如果之前也是使用.exe安裝程序安裝的setuptools,則安裝前要在「添加/刪除程序」中卸載舊的版本。

安裝完畢後,在Python的Scripts子目錄下就會出現easy_install.exe程序。 確保將這個目錄(例如 C:\Python26\Scripts)加入 PATH 環境變數。

方法2: 手工安裝

卸載舊版的方法同 1 相同。

下載ez_setup.py腳本, 然後在命令行運行: python ez_setup.py

三 Linux上的setuptool的安裝

Debian/Ubuntu下可以直接使用apt安裝::

$ sudo apt-get install python-setuptools

手工安裝的話,有兩種方式:

通過引導程序 ez_setup.py 來安裝。這個引導程序會聯網下載最新版本setuptools來安裝,同時也可以更新本地的setuptools。

$ wget

$ sudo python ez_setup.py

更新setuptools::

$ sudo python ez_setup.py -U setuptools

或者下載setuptools的egg包來安裝。可以在 這裡 查看最新版本下載。下載完畢以後通過sh安裝。

$ wget

$ sudo sh setuptools-0.6c11-py2.6.egg

四 easy_install的使用

1) 使用easy_install來自動安裝egg包

比如說要安裝Python的MYSQL支持,可以執行如下命令,系統會自動在pypi網站列表裡查找相關軟體包:easy_install MySQL-python。

通過easy_install安裝軟體,相關安裝信息會保存到easy-install.pth文件里,路徑類似如下形式:C:\Python25\Lib\site-packages\easy-install.pth。

如果想刪除通過easy_install安裝的軟體包,比如說:MySQL-python,可以執行命令:easy_install -m MySQL-python。

2)將egg安裝包下載到本地安裝

進入到安裝包的目錄,執行python setup.py install

3)如果easy_install安裝某模塊有錯的話,則可以自己到下載,然後使用python setup.py install來安裝。

有的時候easy_install並不能夠很好地自動安裝,比如我安裝ldap:easy_install.exe python-ldap, easy_install應該到下下載python-ldap-2.3.8.win32-py2.6.exe,但是easy_install卻找到了python-ldap 2.3.12,最總導致安裝有錯。(不知道是不是因為pypi上沒有64bit的egg,我的系統是64bit的,但是我的python是32bit的啊)

五 egg的製作

egg包是目前最流行的python應用打包部署方式。如何製作和安裝egg包?下面我就簡單的分析了一下。

總是安裝別人的egg包,是不是也想製作自己的egg包呢?好,接下來我們就自己製作一個簡單的egg包。

首先建立工程目錄egg-demo,初始化一個setup.py文件:

$ mkdir egg-demo

$ cd egg-demo

$ touch setup.py

$ ls

setup.py

下面主要就是填充setup.py。setup.py其實是python工具包distutils的配置文件,setuptools就是基於

distutils來做的。

在setup.py中通過setup函數來配置打包信息。首先要引入setuptools的函數setup。setuptools的setup其實就是

distutils的setup函數,填寫setup.py為以下內容:

$ cat setup.py

#!/usr/bin/env python

#-*- coding:utf-8 -*-

from setuptools import setup

setup()

寫到這裡,一個空的egg配置文件就寫好了。我們可以使用下面命令生成egg包:

$ python setup.py bdist_egg

下面看看究竟生成了什麼:

$ ls -F

build/ dist/ setup.py UNKNOWN.egg-info/

可以看到多了三個文件夾。而在dist文件夾下,有一個egg文件:UNKNOWN-0.0.0-py2.6.egg。

產蛋成功!先看看這個egg文件是什麼格式的:

$ file dist/UNKNOWN-0.0.0-py2.6.egg

dist/UNKNOWN-0.0.0-py2.6.egg: Zip archive data, at least v2.0 to extract

噢,原來就是一個zip壓縮包呀!好,再來看看內部構造:

$ unzip -l dist/UNKNOWN-0.0.0-py2.6.egg

Archive: dist/KNOWN-0.0.0-py2.6.egg

Length Date Time Name

——— ———- —– —-

120 2010-12-06 17:04 EGG-INFO/SOURCES.txt

1 2010-12-06 17:04 EGG-INFO/top_level.txt

1 2010-12-06 17:04 EGG-INFO/zip-safe

1 2010-12-06 17:04 EGG-INFO/dependency_links.txt

227 2010-12-06 17:04 EGG-INFO/PKG-INFO

——— ——-

350 5 files

只有一個EGG-INFO文件夾,內含五個egg信息文件,沒了。

這個egg名稱未知,版本0.0.0。這是因為我們在setup里什麼也沒有設置。

顯然,這個egg什麼也不能做。

下面給它加點料。

在setup.py中,setup函數接收一系列屬性作為配置參數。

name name是egg包的名稱,也是尋找要打包的文件夾的名稱,默認是UNKNOWN。

version 版本號,默認0.0.0

packages 這裡要用到setuptools的另一個函數find_packages,顧名思義,find_packages用來將指定目錄下的文件打包。

zip_safe 默認是False,這樣在每次生成egg包時都會檢查項目文件的內容,確保無誤。

還有一些描述性的屬性,如description,long_description,author,author_email,license,keywords,platform,url等。

填充setup.py文件如下::

$ cat setup.py

#!/usr/bin/env python

#-*- coding:utf-8 -*-

from setuptools import setup, find_packages

setup(

name = “demo”,

version=”0.1.0″,

packages = find_packages(),

zip_safe = False,

description = “egg test demo.”,

long_description = “egg test demo, haha.”,

author = “amoblin”,

author_email = “amoblin@ossxp.com”,

license = “GPL”,

keywords = (“test”, “egg”),

platforms = “Independant”,

url = “”,

)

在egg-demo目錄下建立和上述name名稱相同的目錄demo,demo目錄下寫__init__.py文件:

$ mkdir demo

$ cat demo/__init__.py

#!/usr/bin/env python

#-*- coding:utf-8 -*-

def test():

print “Hello, I’m amoblin.”

if __name__ == ‘__main__’:

test()

再次生成egg包以後查看egg包信息:

$ python setup.py bdist_egg

$ unzip -l dist/demo-0.1.0-py2.6.egg

Archive: dist/demo-0.1.0-py2.6.egg

Length Date Time Name

——— ———- —– —-

121 2010-12-06 17:30 demo/__init__.py

344 2010-12-06 17:46 demo/__init__.pyc

137 2010-12-06 17:46 EGG-INFO/SOURCES.txt

5 2010-12-06 17:46 EGG-INFO/top_level.txt

1 2010-12-06 17:46 EGG-INFO/zip-safe

1 2010-12-06 17:46 EGG-INFO/dependency_links.txt

227 2010-12-06 17:46 EGG-INFO/PKG-INFO

——— ——-

836 7 files

可以看到,多了一個文件夾demo,裡面有我們寫的__init__.py。

奉行敏捷原則,先安裝了體驗一下再說:

$ sudo python setup.py install

running install

install_dir /usr/local/lib/python2.6/dist-packages/

creating /usr/local/lib/python2.6/dist-packages/demo-0.1.0-py2.6.egg

Extracting demo-0.1.0-py2.6.egg to /usr/local/lib/python2.6/dist-packages

demo 0.1.0 is already the active version in easy-install.pth

Installed /usr/local/lib/python2.6/dist-packages/demo-0.1.0-py2.6.egg

Processing dependencies for demo==0.1.0

Finished processing dependencies for demo==0.1.0

OK!安裝完畢!接下來我們就可以直接通過import來使用啦!

$ python -c “from demo import test;test()”

Hello, I’m amoblin.

成功輸出!這說明安裝正確。我們的一個egg包誕生了。

一般情況下,我們的源程序都放在src目錄下,所以接下來將demo文件夾移動到src里。但這樣也要修改setup.py文件,修改find_packages函數中參數為』src』,同時增加package_dir參數:

packages=find_packages(‘src’),

package_dir = {”:’src’}

這樣告訴setuptools在src目錄下找包,而不是原來默認的工程根目錄。

最後我們來手動的卸載以下剛才安裝的egg文件,以python2.6版本為例,egg文件一般安裝在/usr/local/lib

/python2.6/dist-packages/目錄下,該目錄下還有一個easy-install.pth文件,用於存放安裝的egg信息。:

$ cd /usr/local/lib/python2.6/dist-packages

$ cat easy-install.pth|grep demo

./demo-0.1.0-py2.6.egg

$ ls -F|grep demo

demo-0.1.0-py2.6.egg/

卸載egg文件很簡單,首先將包含此egg的行從easy-install.pth中刪除,然後刪除egg文件夾即可。

Python如何安裝模塊

一、方法1: 單文件模塊

直接把文件拷貝到 $python_dir/Lib

二、方法2: 多文件模塊,帶setup.py

下載模塊包,進行解壓,進入模塊文件夾,執行:

python setup.py install

三、 方法3:easy_install 方式

先下載ez_setup.py,運行python ez_setup 進行easy_install工具的安裝,之後就可以使用easy_install進行安裝package了。

easy_install packageName

easy_install package.egg

四、 方法4:pip 方式

先進行pip工具的安裝:easy_install pip(pip 可以通過easy_install 安裝,而且也會裝到 Scripts 文件夾下。)

安裝:pip install PackageName

更新:pip install -U PackageName

移除:pip uninstall PackageName

搜索:pip search PackageName

幫助:pip help

如何將自己的Python代碼打包發布到pypi上

什麼是pypi

簡單的說pypi是一個python包的倉庫,裡面有很多別人寫好的python庫,你可以通過easy_install或者pip進行安裝,方便用戶更方面的使用你的代碼模塊。

將代碼打包並上傳到pypi上,大體上分為以下幾步:

1、整理代碼的目錄結構,方便打包和python的import,為了方便引用,需要將代碼模塊變成一個包,所以需要將功能代碼用目錄來整合方便引用,並且需要創建__init__文件,__init__中可以沒有內容,也可以在__init__文件中進行import(from .extractor import Document)操作,以減少整體模塊引用時import的層數,避免錯誤。

[html] view plain copy

├── ./tidypage  

│   ├── ./tidypage/cleaners.py  

│   ├── ./tidypage/extractor.py  

│   ├── ./tidypage/__init__.py  

│   └── ./tidypage/titles.py

2、功能模塊的目錄整理好後,就可以開始整理和添加發布到pypi上所使用的文件了

tidy_page  

├── LICENSE  

├── README.rst  

├── requirements.txt  

├── setup.py  

├──tidypage  

│   ├──cleaners.py  

│   ├──extractor.py  

│   ├──__init__.py  

│   └──titles.py

就是將原來的目錄深移一層,文件夾名稱可以根據自己意願。然後在到第一層的目錄下創建些特殊文件,具體你可以看看下面這個文件結構你就明白了

LICENSE文件是授權文件,比如:MIT license, APACHE license

README.rst 文件想必大家都不陌生,其實就是項目介紹和使用說明

setup文件才是重點,是python模塊安裝所需要的文件,它的格式如下:

#!/usr/bin/env python  

from __future__ import print_function  

from setuptools import setup, find_packages  

import sys  

  

setup(  

    name=”tidy-page”,  

    version=”0.1.1″,  

    author=”Desion Wang”,  

    author_email=”wdxin1322@qq.com”,  

    description=”html text parser,get the content form html page”,  

    long_description=open(“README.rst”).read(),  

    license=”MIT”,  

    url=””,  

    packages=[‘tidypage’],  

    install_requires=[  

        “beautifulsoup4”,  

        lxml_requirement  

        ],  

    classifiers=[  

        “Environment :: Web Environment”,  

        “Intended Audience :: Developers”,  

        “Operating System :: OS Independent”,  

        “Topic :: Text Processing :: Indexing”,  

        “Topic :: Utilities”,  

        “Topic :: Internet”,  

        “Topic :: Software Development :: Libraries :: Python Modules”,  

        “Programming Language :: Python”,  

        “Programming Language :: Python :: 2”,  

        “Programming Language :: Python :: 2.6”,  

        “Programming Language :: Python :: 2.7”,  

    ],  

)

NAME 名字,一般放你包的名字即可PACKAGES 包含的包,可以多個,這是一個列表DESCRIPTION 關於這個包的描述LONG_DESCRIPTION 參見read方法說明KEYWORDS 關於當前包的一些關鍵字,方便PyPI進行分類。AUTHOR 誰是這個包的作者,寫誰的名字吧AUTHOR_EMAIL 作者的郵件地址URL 你這個包的項目地址,如果有,給一個吧,沒有你直接填寫在PyPI你這個包的地址也是可以的VERSION 當前包的版本,這個按你自己需要的版本控制方式來LICENSE 授權方式INSTALL_REQUIRES 模塊所依賴的python模塊

文中的classifiers的內容並不是隨便填寫的,你需要參照本文參考文檔中的PyPI Classifiers來寫

3、開始使用Distutils進行打包

為了保證效果,在打包之前我們可以驗證setup.py的正確性,執行下面的代碼

python setup.py check

輸出一般是running check如果有錯誤或者警告,就會在此之後顯示沒有任何顯示錶示Distutils認可你這個setup.py文件。

如果沒有問題,那麼就可以正式打包,執行下面的代碼:

python setup.py sdist

執行完成後,會在頂層目錄下生成dist目錄和egg目錄

tidy_page  

├── tidy_page/dist  

│   ├── tidy_page/dist/tidy-page-0.1.0.tar.gz  

│   └── tidy_page/dist/tidy-page-0.1.1.tar.gz  

├── tidy_page/LICENSE  

├── tidy_page/README.rst  

├── tidy_page/setup.py  

├── tidy_page/tidypage  

│   ├── tidy_page/tidypage/cleaners.py  

│   ├── tidy_page/tidypage/extractor.py  

│   ├── tidy_page/tidypage/__init__.py  

│   └── tidy_page/tidypage/titles.py  

├── tidy_page/tidy_page.egg-info  

│   ├── tidy_page/tidy_page.egg-info/dependency_links.txt  

│   ├── tidy_page/tidy_page.egg-info/PKG-INFO  

│   ├── tidy_page/tidy_page.egg-info/requires.txt  

│   ├── tidy_page/tidy_page.egg-info/SOURCES.txt  

│   └── tidy_page/tidy_page.egg-info/top_level.txt

4、打包完成後就可以準備將打包好的模塊上傳到pypi了,首先你需要在pypi上進行註冊 goto PyPI Live

註冊完成後,你需要在本地創建好pypi的配置文件,不然有可能會出現使用http無法上傳到pypi的問題

Create a .pypirc configuration file,在用戶的home目錄下創建.pypirc文件,文件的內容如下

[distutils]index-servers =  pypi[pypi]repository=

chmod 600 ~/.pypirc

python setup.py register -r pypi

在pypi上註冊模塊

python setup.py sdist upload -r pypi

上傳python文件包,沒有問題你就可以在pypi上看到你上傳的包了並且可以使用pip搜索和install你的python包了

如何在win7中安裝ipython,並且設置環境變數

方法如下:

1.首先安裝python。(百度搜索即可下載)安裝完成以後,然後需要安裝ez_setup.py,(百度搜索即可下載)。

2.在cmd中安裝ez_setup.py,命令為:python ez_setup.py

3.下載pyreadline包,並且雙擊後安裝就可以了!(百度搜索即可下載)。

4.下載ipython,(百度搜索即可下載)。下載完成以後,解壓到c盤根目錄,即可

5.然後在cmd中安裝ipython即可,命令為:python setupegg.py install設置ipython的環境變數,ipython的可執行文件在C:\Python27\Scripts中;

6.這時,就可以在cmd中直接輸入ipython命令即可完成。

原創文章,作者:HYUH,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/133159.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
HYUH的頭像HYUH
上一篇 2024-10-03 23:57
下一篇 2024-10-03 23:57

相關推薦

  • Rclone複製所有目錄

    如果你需要將本地文件複製到雲端,或者從雲端複製文件到本地,Rclone是一個非常好的選擇。本文將介紹如何使用Rclone複製所有目錄。 一、安裝Rclone 首先,你需要在你的機器…

    編程 2025-04-29
  • 二級考級舞蹈大全目錄

    本文將從以下多個方面對二級考級舞蹈大全目錄進行詳細闡述。 一、目錄結構 二級考級舞蹈大全目錄主要分為三級,即一級目錄、二級目錄和三級目錄。其中,一級目錄為舞蹈類型,二級目錄為舞蹈名…

    編程 2025-04-29
  • Python目錄怎麼打開

    Python是一種高級編程語言,以其易讀、易擴展和簡潔高效的特徵,目前得到了眾多程序開發者的認可。Python的應用已經擴展到了人工智慧、Web開發、數據分析、自動化測試等領域。本…

    編程 2025-04-28
  • 不從skel目錄複製文件的方法

    對於開發工程師而言,我們經常需要使用一些預定義的目錄結構來組織我們的項目文件。skel作為一個經典的目錄結構,包含了許多常用的文件和目錄。 一、了解skel目錄 skel目錄通常位…

    編程 2025-04-28
  • Python保存文件到指定目錄

    在Python編程中,我們有時需要將生成的文件保存到指定目錄中。本文將從以下幾個方面詳細介紹如何使用Python保存文件到指定目錄。 一、使用os模塊保存文件到指定目錄 在Pyth…

    編程 2025-04-28
  • Python獲取py文件目錄及其應用

    本文將從多個方面介紹Python獲取py文件目錄及其應用,包括獲取py文件所在目錄和父目錄、獲取某個路徑下所有py文件、查找某個目錄下特定文件名的py文件、以及將當前目錄及其子目錄…

    編程 2025-04-27
  • Docker掛載目錄–graph用法介紹

    本文將從如下幾個方面詳細闡述Docker掛載目錄–graph: 一、基本概念 在Docker中,鏡像是由一系列只讀層組成的文件系統。當我們啟動一個容器時,Docker會…

    編程 2025-04-27
  • 網站目錄掃描

    一、目錄掃描是什麼 目錄掃描是一種常見的網路安全評估技術,通常用於評估一個網站或者系統的安全性。它的原理是通過枚舉目標系統中的文件和目錄,尋找系統存在的漏洞和其他安全問題。 在目錄…

    編程 2025-04-25
  • 深入理解 Vue 目錄結構

    Vue 是一款由 Evan You 開發的流行 JavaScript 框架。Vue 具有響應式視圖和組件化的思想,讓開發者可以輕鬆構建互動式的 Web 應用。那麼在 Vue 開發中…

    編程 2025-04-24
  • Linux複製文件夾下所有文件到指定目錄

    一、使用cp命令複製單個文件 在Linux系統中,我們可以使用cp命令來複制單個文件,具體命令如下: cp 源文件 目標文件 其中,源文件是要複製的文件,目標文件是複製後的文件名或…

    編程 2025-04-24

發表回復

登錄後才能評論