<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ### 導航 - [索引](# "總目錄") - [下一頁](# "使用 Fabric 部署") | - [上一頁](# "使用 URL 處理器") | - [Flask 0.10.1 文檔](#) ? - [Flask 代碼模式](#) ? # 部署和分發 [distribute](http://pypi.python.org/pypi/distribute) [http://pypi.python.org/pypi/distribute] 的前身是 setuptools ,是一個通常用于分發Python 庫和擴展程序的外部庫。它依賴于隨 Python 預裝的 distutils 庫,而后者則是一個基礎的模塊安裝系統,這一安裝系統也支持很多復雜的構造,使得大型應用更易于分發。 - **支持依賴關系管理**: 一個庫可以聲明自己依賴哪些軟件包,從而在安裝這個模塊的時候,自動將依賴的軟件包也安裝到您的計算機。 - **注冊軟件包**: setuptools 將您的包注冊到您的安裝的 Python 環境中。這使得您可以使一個包中的代碼查詢另一個包所提供的信息。這一系統最知名的特性就是對接口機制的支持,也就是說一個包可以聲明自己的一個接口,從而允許其他的包通過這個接口對自己進行擴展。 - **安裝包管理器**: easy_install 默認隨 Python 安裝,它可以用于為您安裝其他的庫。您也可以使用 pip 這個可能早晚會代替 easy_install 的包管理器,它能夠完成安裝軟件包之外更多的任務。 而對于 Flask 自己,則所有您可以在 cheessshop 上找到的軟件包,都隨著 distribute分發管理器,或者更古老的 setuptools 和 distutils 分發。 在這里,我們假定您的應用名為 yourapplication.py ,而您沒使用模塊而是使用[*package*](#) 的結構來組織代碼。分發帶有標準模塊的代碼不被 [distribute](http://pypi.python.org/pypi/distribute) [http://pypi.python.org/pypi/distribute] 支持,所以我們不去管它。如果您還沒有將您的應用轉化為包的形式,請參考前文 [*大型應用*](#) 的內容查找如何做到這件事。 利用 distribute 完成一個有效的部署進行更復雜和更自動化的部署方案的第一步,如果您使程序完全自動化,可以閱讀 [*使用 Fabric 部署*](#) 這一章。 ### 基礎的安裝腳本 因為你已經讓 Flask 運行起來了,所以不管怎么說您的系統上應該會有 setuptools或者d istribute,如果你沒有這兩樣,不要害怕。這里幫你準備了一個腳本:distribute_setup.py 你只需要下載并用 Python 解釋器運行它。 考慮這些操作可能會有風險,因此建議您參考 [*你最好使用 virtualenv*](#) 一文。 您的安裝代碼將總是保存在與您應用同目錄下的 setup.py 文件中。為文件指定這一名稱只是為了方便,不過一般來說每一個人自然而然的在程序目錄下尋找這個文件,所以您最好別改變它。 同時,即使您在使用 distribute ,您也會導入一個名為 setuptools 的包。distribute 完全向下兼容 setuptools ,所以我們也使用這個名字來導入它。 一個基本的 Flask 應用的 setup.py 文件看起來像如下這樣: ~~~ from setuptools import setup setup( name='Your Application', version='1.0', long_description=__doc__, packages=['yourapplication'], include_package_data=True, zip_safe=False, install_requires=['Flask'] ) ~~~ 切記,您必須詳細地列出子代碼包,如果您想要 distribute 自動為您尋找這些包,您可以使用 find_packages 函數: ~~~ from setuptools import setup, find_packages setup( ... packages=find_packages() ) ~~~ 大多數 setup 函數當中的參數的意義從字面意思就能看出來,然而include_package_data 和 zip_safe 可能不在此列。include_package_data 告訴 distribute 自動查找一個 MANIFEST.in 文件。解析此文件獲得有效的包類型的數據,并安裝所有這些包。我們使用這個特性來分發Python 模塊自帶的靜態文件和模板(參考 [*分發代碼*](#))。而 zip_safe標志可以被用來強制阻止 ZIP 安裝包的建立。通常情況下,您不希望您的包以 ZIP 壓縮包的形式被安裝,因為一些工具不支持這種方式,而且這樣也會讓調試代碼異常麻煩。 ### 分發代碼 如果您視圖安裝您剛剛創建的包,您會發現諸如 static 和 templates 這樣的文件夾沒有安裝進去。這是因為 distribute 不知道該把哪些文件添加進去。您只要在 setup.py 相同的文件夾下創建一個 MANIFEST.in 文件,并在此文件中列出所有應該被添加進去的文件: ~~~ recursive-include yourapplication/templates * recursive-include yourapplication/static * ~~~ 不要忘記,即使您已經將他們列在 MANIFEST.in 文件當中,也需要您將 setup 函數的include_package_data 參數設置為 True ,否則他們仍然不會被安裝。 ### 聲明依賴關系 您需要使用一個鏈表在 install_requires 參數中聲明依賴關系。鏈表的每個元素是需要從 PyPI 下載并安裝的包的名字,默認將總會下載安裝最新的的版本。但是您也可以指定需要的最大和最小的版本區間。以下是一個例子: ~~~ install_requires=[ 'Flask>=0.2', 'SQLAlchemy>=0.6', 'BrokenPackage>=0.7,<=1.0' ] ~~~ 前文曾經指出,這些依賴都從 PyPI 當中下載,如果您需要依賴一個不能在 PyPI 當中被下載的包,比如這個包是個內部的,您不想與別人分享。這時,您可以依然照原來那樣將包列在列表里,但是同時提供一個包括所有可選下載地址的列表,以便于安裝時從這些地點尋找分發的軟件包: ~~~ dependency_links=['http://example.com/yourfiles'] ~~~ 請確認那個頁面包含一個文件夾列表,且頁面上的連接被指向實際需要下載的軟件包。distribute 通過掃描這個頁面來尋找需要安裝的文件,因此文件的名字必須是正確無誤的。如您有一個內部服務器包含有這些包,將 URL 指向這個服務器。 ### 安裝 / 開發 安裝您的應用(到一個 virtualenv),只需使用 install 指令運行 setup.py 即可。這會將您的應用安裝到一個 virtualenv 的 site-packages 文件夾下面,并且同時下載和安裝所有的依賴包: ~~~ $ python setup.py install ~~~ 如果您在進行基于這個包的開發,并且希望安裝開發所依賴的工具或軟件包,您可以使用 develop 命令代替 install ~~~ $ python setup.py develop ~~~ 此時將不會把您的文件拷貝到 site-packages 文件夾,而僅僅是在那里創建指向這些文件的文件鏈接。您可以繼續編輯和修改這些代碼,而無需在每次修改之后運行 install 命令。 ? 版權所有 2013, Armin Ronacher.
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看