# SOME DESCRIPTIVE TITLE. # Copyright (C) 2001-2022, Python Software Foundation # This file is distributed under the same license as the Python package. # # Translators: msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-09-01 22:24+0800\n" "PO-Revision-Date: 2022-10-16 05:35+0800\n" "Last-Translator: Adrian Liaw \n" "Language-Team: Chinese - TAIWAN (https://github.com/python/python-docs-zh-" "tw)\n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 3.1.1\n" #: ../../tutorial/venv.rst:6 msgid "Virtual Environments and Packages" msgstr "虛擬環境與套件" #: ../../tutorial/venv.rst:9 msgid "Introduction" msgstr "簡介" #: ../../tutorial/venv.rst:11 msgid "" "Python applications will often use packages and modules that don't come as " "part of the standard library. Applications will sometimes need a specific " "version of a library, because the application may require that a particular " "bug has been fixed or the application may be written using an obsolete " "version of the library's interface." msgstr "" "Python 應用程式通常會用到不在標準函式庫的套件和模組。應用程式有時候會需要某個" "特定版本的函式庫,因為這個應用程式可能需要某個特殊的臭蟲修正,或是這個應用程" "式是根據該函式庫特定版本的介面所撰寫。" #: ../../tutorial/venv.rst:17 msgid "" "This means it may not be possible for one Python installation to meet the " "requirements of every application. If application A needs version 1.0 of a " "particular module but application B needs version 2.0, then the requirements " "are in conflict and installing either version 1.0 or 2.0 will leave one " "application unable to run." msgstr "" "這意味著不太可能安裝一套 Python 就可以滿足所有應用程式的要求。如果應用程式 A " "需要一個特定的模組的 1.0 版,但另外一個應用程式 B 需要 2.0 版,那麼這整個需求" "不管安裝 1.0 或是 2.0 都會衝突,以致於應用程式無法使用。" #: ../../tutorial/venv.rst:23 msgid "" "The solution for this problem is to create a :term:`virtual environment`, a " "self-contained directory tree that contains a Python installation for a " "particular version of Python, plus a number of additional packages." msgstr "" "解決方案是建立一個\\ :term:`虛擬環境 (virtual environment) `,這是一個獨立的資料夾,並且裡面裝好了特定版本的 Python,以及一" "系列相關的套件。" #: ../../tutorial/venv.rst:27 msgid "" "Different applications can then use different virtual environments. To " "resolve the earlier example of conflicting requirements, application A can " "have its own virtual environment with version 1.0 installed while " "application B has another virtual environment with version 2.0. If " "application B requires a library be upgraded to version 3.0, this will not " "affect application A's environment." msgstr "" "不同的應用程式可以使用不同的虛擬環境。以前述中需要被解決的例子中,應用程式 A " "能夠擁有它自己的虛擬環境,並且是裝好 1.0 版,然而應用程式 B 則可以是用另外一" "個有 2.0 版的虛擬環境。要是應用程式 B 需要某個函式庫被升級到 3.0 版,這並不會" "影響到應用程式 A 的環境。" #: ../../tutorial/venv.rst:36 msgid "Creating Virtual Environments" msgstr "建立虛擬環境" #: ../../tutorial/venv.rst:38 msgid "" "The module used to create and manage virtual environments is called :mod:" "`venv`. :mod:`venv` will install the Python version from which the command " "was run (as reported by the :option:`--version` option). For instance, " "executing the command with ``python3.12`` will install version 3.12." msgstr "" "用來建立與管理虛擬環境的模組叫做 :mod:`venv`。:mod:`venv` 將安裝執行命令的 " "Python 版本(如 :option:`--version` 選項所報告的)。例如使用 ``python3.12`` " "執行命令將安裝 3.12 版本。" #: ../../tutorial/venv.rst:44 msgid "" "To create a virtual environment, decide upon a directory where you want to " "place it, and run the :mod:`venv` module as a script with the directory " "path::" msgstr "" "在建立虛擬環境的時候,在你決定要放該虛擬環境的資料夾之後,以腳本 (script) 執" "行 :mod:`venv` 模組並且給定資料夾路徑: ::" #: ../../tutorial/venv.rst:47 msgid "python -m venv tutorial-env" msgstr "python -m venv tutorial-env" #: ../../tutorial/venv.rst:49 msgid "" "This will create the ``tutorial-env`` directory if it doesn't exist, and " "also create directories inside it containing a copy of the Python " "interpreter and various supporting files." msgstr "" "如果 ``tutorial-env`` 不存在的話,這會建立 ``tutorial-env`` 資料夾,並且也會" "在裡面建立一個有 Python 直譯器的複本以及不同的支援檔案的資料夾。" #: ../../tutorial/venv.rst:53 msgid "" "A common directory location for a virtual environment is ``.venv``. This " "name keeps the directory typically hidden in your shell and thus out of the " "way while giving it a name that explains why the directory exists. It also " "prevents clashing with ``.env`` environment variable definition files that " "some tooling supports." msgstr "" "虛擬環境的常用資料夾位置是 ``.venv``。這個名稱通常會使該資料夾在你的 shell 中" "保持隱藏,因此這樣命名既可以解釋資料夾存在的原因,也不會造成任何困擾。它還能" "防止與某些工具所支援的 ``.env`` 環境變數定義檔案發生衝突。" #: ../../tutorial/venv.rst:59 msgid "Once you've created a virtual environment, you may activate it." msgstr "一旦你建立了一個虛擬環境,你可以啟動它。" #: ../../tutorial/venv.rst:61 msgid "On Windows, run::" msgstr "在 Windows 系統中,使用: ::" #: ../../tutorial/venv.rst:63 msgid "tutorial-env\\Scripts\\activate" msgstr "tutorial-env\\Scripts\\activate" #: ../../tutorial/venv.rst:65 msgid "On Unix or MacOS, run::" msgstr "在 Unix 或 MacOS 系統,使用: ::" #: ../../tutorial/venv.rst:67 msgid "source tutorial-env/bin/activate" msgstr "source tutorial-env/bin/activate" #: ../../tutorial/venv.rst:69 msgid "" "(This script is written for the bash shell. If you use the :program:`csh` " "or :program:`fish` shells, there are alternate ``activate.csh`` and " "``activate.fish`` scripts you should use instead.)" msgstr "" "(這段程式碼適用於 bash shell。如果你是用 :program:`csh` 或者 :program:" "`fish` shell,應當使用替代的 ``activate.csh`` 與 ``activate.fish`` 腳本。)" #: ../../tutorial/venv.rst:74 msgid "" "Activating the virtual environment will change your shell's prompt to show " "what virtual environment you're using, and modify the environment so that " "running ``python`` will get you that particular version and installation of " "Python. For example:" msgstr "" "啟動虛擬環境會改變你的 shell 提示字元來顯示你正在使用的虛擬環境,並且修改環境" "以讓你在執行 ``python`` 的時候可以得到特定的 Python 版本,例如:" #: ../../tutorial/venv.rst:79 msgid "" "$ source ~/envs/tutorial-env/bin/activate\n" "(tutorial-env) $ python\n" "Python 3.5.1 (default, May 6 2016, 10:59:36)\n" " ...\n" ">>> import sys\n" ">>> sys.path\n" "['', '/usr/local/lib/python35.zip', ...,\n" "'~/envs/tutorial-env/lib/python3.5/site-packages']\n" ">>>" msgstr "" "$ source ~/envs/tutorial-env/bin/activate\n" "(tutorial-env) $ python\n" "Python 3.5.1 (default, May 6 2016, 10:59:36)\n" " ...\n" ">>> import sys\n" ">>> sys.path\n" "['', '/usr/local/lib/python35.zip', ...,\n" "'~/envs/tutorial-env/lib/python3.5/site-packages']\n" ">>>" #: ../../tutorial/venv.rst:91 msgid "To deactivate a virtual environment, type::" msgstr "要停用虛擬環境,輸入: ::" #: ../../tutorial/venv.rst:93 msgid "deactivate" msgstr "deactivate" #: ../../tutorial/venv.rst:95 msgid "into the terminal." msgstr "於終端機中。" #: ../../tutorial/venv.rst:98 msgid "Managing Packages with pip" msgstr "用 pip 管理套件" #: ../../tutorial/venv.rst:100 msgid "" "You can install, upgrade, and remove packages using a program called :" "program:`pip`. By default ``pip`` will install packages from the `Python " "Package Index `_. You can browse the Python Package Index " "by going to it in your web browser." msgstr "" "你可以使用一個叫做 :program:`pip` 的程式來安裝、升級和移除套件。``pip`` 預設" "會從 `Python Package Index `_ 安裝套件。你可以透過你的網頁" "瀏覽器瀏覽 Python Package Index。" #: ../../tutorial/venv.rst:105 msgid "" "``pip`` has a number of subcommands: \"install\", \"uninstall\", \"freeze\", " "etc. (Consult the :ref:`installing-index` guide for complete documentation " "for ``pip``.)" msgstr "" "``pip`` 有好幾個子命令:\"install\"、\"uninstall\"、\"freeze\" 等等。(可以參" "考\\ :ref:`installing-index`\\ 指南,來取得 ``pip`` 的完整說明文件。)" #: ../../tutorial/venv.rst:109 msgid "" "You can install the latest version of a package by specifying a package's " "name:" msgstr "你可以透過指定套件名字來安裝最新版本的套件:" #: ../../tutorial/venv.rst:111 msgid "" "(tutorial-env) $ python -m pip install novas\n" "Collecting novas\n" " Downloading novas-3.1.1.3.tar.gz (136kB)\n" "Installing collected packages: novas\n" " Running setup.py install for novas\n" "Successfully installed novas-3.1.1.3" msgstr "" "(tutorial-env) $ python -m pip install novas\n" "Collecting novas\n" " Downloading novas-3.1.1.3.tar.gz (136kB)\n" "Installing collected packages: novas\n" " Running setup.py install for novas\n" "Successfully installed novas-3.1.1.3" #: ../../tutorial/venv.rst:120 msgid "" "You can also install a specific version of a package by giving the package " "name followed by ``==`` and the version number:" msgstr "你也可以透過在套件名稱之後接上 ``==`` 和版號來指定特定版本:" #: ../../tutorial/venv.rst:123 msgid "" "(tutorial-env) $ python -m pip install requests==2.6.0\n" "Collecting requests==2.6.0\n" " Using cached requests-2.6.0-py2.py3-none-any.whl\n" "Installing collected packages: requests\n" "Successfully installed requests-2.6.0" msgstr "" "(tutorial-env) $ python -m pip install requests==2.6.0\n" "Collecting requests==2.6.0\n" " Using cached requests-2.6.0-py2.py3-none-any.whl\n" "Installing collected packages: requests\n" "Successfully installed requests-2.6.0" #: ../../tutorial/venv.rst:131 msgid "" "If you re-run this command, ``pip`` will notice that the requested version " "is already installed and do nothing. You can supply a different version " "number to get that version, or you can run ``python -m pip install --" "upgrade`` to upgrade the package to the latest version:" msgstr "" "要是你重新執行此命令,``pip`` 會知道該版本已經安裝過,然後什麼也不做。你可以" "提供不同的版本號碼來取得該版本,或是可以執行 ``python -m pip install --" "upgrade`` 來把套件升級到最新的版本:" #: ../../tutorial/venv.rst:136 msgid "" "(tutorial-env) $ python -m pip install --upgrade requests\n" "Collecting requests\n" "Installing collected packages: requests\n" " Found existing installation: requests 2.6.0\n" " Uninstalling requests-2.6.0:\n" " Successfully uninstalled requests-2.6.0\n" "Successfully installed requests-2.7.0" msgstr "" "(tutorial-env) $ python -m pip install --upgrade requests\n" "Collecting requests\n" "Installing collected packages: requests\n" " Found existing installation: requests 2.6.0\n" " Uninstalling requests-2.6.0:\n" " Successfully uninstalled requests-2.6.0\n" "Successfully installed requests-2.7.0" #: ../../tutorial/venv.rst:146 msgid "" "``python -m pip uninstall`` followed by one or more package names will " "remove the packages from the virtual environment." msgstr "" "``python -m pip uninstall`` 後面接一個或是多個套件名稱可以從虛擬環境中移除套" "件。" #: ../../tutorial/venv.rst:149 msgid "" "``python -m pip show`` will display information about a particular package:" msgstr "``python -m pip show`` 可以顯示一個特定套件的資訊:" #: ../../tutorial/venv.rst:151 msgid "" "(tutorial-env) $ python -m pip show requests\n" "---\n" "Metadata-Version: 2.0\n" "Name: requests\n" "Version: 2.7.0\n" "Summary: Python HTTP for Humans.\n" "Home-page: http://python-requests.org\n" "Author: Kenneth Reitz\n" "Author-email: me@kennethreitz.com\n" "License: Apache 2.0\n" "Location: /Users/akuchling/envs/tutorial-env/lib/python3.4/site-packages\n" "Requires:" msgstr "" "(tutorial-env) $ python -m pip show requests\n" "---\n" "Metadata-Version: 2.0\n" "Name: requests\n" "Version: 2.7.0\n" "Summary: Python HTTP for Humans.\n" "Home-page: http://python-requests.org\n" "Author: Kenneth Reitz\n" "Author-email: me@kennethreitz.com\n" "License: Apache 2.0\n" "Location: /Users/akuchling/envs/tutorial-env/lib/python3.4/site-packages\n" "Requires:" #: ../../tutorial/venv.rst:166 msgid "" "``python -m pip list`` will display all of the packages installed in the " "virtual environment:" msgstr "``python -m pip list`` 會顯示虛擬環境中所有已經安裝的套件:" #: ../../tutorial/venv.rst:169 msgid "" "(tutorial-env) $ python -m pip list\n" "novas (3.1.1.3)\n" "numpy (1.9.2)\n" "pip (7.0.3)\n" "requests (2.7.0)\n" "setuptools (16.0)" msgstr "" "(tutorial-env) $ python -m pip list\n" "novas (3.1.1.3)\n" "numpy (1.9.2)\n" "pip (7.0.3)\n" "requests (2.7.0)\n" "setuptools (16.0)" #: ../../tutorial/venv.rst:178 msgid "" "``python -m pip freeze`` will produce a similar list of the installed " "packages, but the output uses the format that ``python -m pip install`` " "expects. A common convention is to put this list in a ``requirements.txt`` " "file:" msgstr "" "``python -m pip freeze`` 可以複製一整個已經安裝的套件清單,但是輸出使用 " "``python -m pip install`` 可以讀懂的格式。一個常見的慣例是放這整個清單到一個" "叫做 ``requirements.txt`` 的檔案:" #: ../../tutorial/venv.rst:182 msgid "" "(tutorial-env) $ python -m pip freeze > requirements.txt\n" "(tutorial-env) $ cat requirements.txt\n" "novas==3.1.1.3\n" "numpy==1.9.2\n" "requests==2.7.0" msgstr "" "(tutorial-env) $ python -m pip freeze > requirements.txt\n" "(tutorial-env) $ cat requirements.txt\n" "novas==3.1.1.3\n" "numpy==1.9.2\n" "requests==2.7.0" #: ../../tutorial/venv.rst:190 msgid "" "The ``requirements.txt`` can then be committed to version control and " "shipped as part of an application. Users can then install all the necessary " "packages with ``install -r``:" msgstr "" "``requirements.txt`` 可以提交到版本控制,並且作為釋出應用程式的一部分。使用者" "可以透過 ``install -r`` 安裝對應的的套件:" #: ../../tutorial/venv.rst:194 msgid "" "(tutorial-env) $ python -m pip install -r requirements.txt\n" "Collecting novas==3.1.1.3 (from -r requirements.txt (line 1))\n" " ...\n" "Collecting numpy==1.9.2 (from -r requirements.txt (line 2))\n" " ...\n" "Collecting requests==2.7.0 (from -r requirements.txt (line 3))\n" " ...\n" "Installing collected packages: novas, numpy, requests\n" " Running setup.py install for novas\n" "Successfully installed novas-3.1.1.3 numpy-1.9.2 requests-2.7.0" msgstr "" "(tutorial-env) $ python -m pip install -r requirements.txt\n" "Collecting novas==3.1.1.3 (from -r requirements.txt (line 1))\n" " ...\n" "Collecting numpy==1.9.2 (from -r requirements.txt (line 2))\n" " ...\n" "Collecting requests==2.7.0 (from -r requirements.txt (line 3))\n" " ...\n" "Installing collected packages: novas, numpy, requests\n" " Running setup.py install for novas\n" "Successfully installed novas-3.1.1.3 numpy-1.9.2 requests-2.7.0" #: ../../tutorial/venv.rst:207 msgid "" "``pip`` has many more options. Consult the :ref:`installing-index` guide " "for complete documentation for ``pip``. When you've written a package and " "want to make it available on the Python Package Index, consult the `Python " "packaging user guide`_." msgstr "" "``pip`` 還有更多功能。可以參考\\ :ref:`installing-index`\\ 指南,來取得完整" "的 ``pip`` 說明文件。當你撰寫了一個套件並且想要讓它在 Python Package Index 上" "可以取得的話,可以參考 `Python packaging user guide`_。"