2017-05-24 84 views
-2

爲什麼我們必須在使用它們之前安裝python包?爲什麼要安裝Python包

我目前正在研究一個小型的python mysql程序。我試圖從mysql網頁下載python連接器模塊,只需將其解壓縮並將其放在我的代碼的同一文件夾中即可。

而且我可以正確導入模塊。

那麼安裝這些軟件包有什麼意義?我可以在不安裝它們的情況下使用像matplotlib,numpy這樣的軟件包嗎?

是否有可能在一個文件夾中安裝所有必需的軟件包,以便我可以將它移動到另一臺計算機上,並且只安裝CPython來運行我的程序(我不想在此計算機上安裝任何軟件包)?

+2

當您將一個Python包解壓到您的項目中時,會發生什麼情況取決於另一個Python包? – Blender

+0

爲mysql,它不依賴於其他python包,所以沒關係。 –

+1

對於'mysql-connector'來說可能是正確的,但對許多其他純Python包(比如'flask')來說並不是這樣。例如,numpy不能通過複製/粘貼來安裝,因爲它使用'setup.py'文件編譯了大量的Cython代碼。 – Blender

回答

1

它不是這麼簡單:-)

  • 一些軟件包的依賴關係,你還需要下載並提取它們的依賴(需要pacakge x和包X使用Y)pakcage管理器處理的是
  • 某些軟件包有一些c代碼(它們需要在使用前進行編譯(ujson或postgres模塊))包管理器處理該代碼時共享代碼而不是共享依賴關係時只需添加一個包含依賴關係列表的文件(requirements.txt)和其他用戶可以使用軟件包簡單地安裝所有依賴項經理
+0

是否可以避免任何依賴關係的安裝?我想將所有依賴項和我的代碼壓縮到一個文件中,以便其他人可以直接解壓縮並直接運行我的程序,而無需安裝依賴項。 –

+0

檢查此鏈接http://python-guide-pt-br.readthedocs.io/en/latest/shipping/freezing/ – aliva

+0

非常感謝你 –

0

安裝python包使我們可以在我們的系統上使用它任何地方。如果我們只把程序包放在與我們的腳本相同的目錄下,那麼它可能會工作,但只適用於該目錄中的腳本。

某些軟件包也依賴於其他軟件來正常運行,並且安裝軟件包可能會爲您安裝這些必備軟件包。您可以手動執行此操作,但是每次運行腳本時都必須將它們全部放入腳本所在的目錄中。

因此安裝軟件包是最簡單的使用方法。

你不要來安裝它們,在某些情況下你不會將它們安裝在你的系統上;例如,如果您已將代碼分割爲兩個文件並將另一個文件導入另一個文件的頂部。

+0

是否可以將軟件包與這些必備軟件包一起復制到我的程序文件夾中?我想將所有必需的庫和我的代碼移到僅安裝了Cpython的新計算機上。 –

+0

它非常依賴於包。你最好的選擇就是在你需要的時候簡單地在新電腦上重新安裝軟件包。 –

0

事實上,你並不需要在你的系統上安裝軟件包。 但是,如果您安裝它,則可以在系統上的任何位置使用這些軟件包。 此外,您可以創建requirement.txt文件以啓用在其他計算機上安裝所需的所有軟件包。您可以查看本手冊https://pip.pypa.io/en/stable/user_guide/#requirements-files

相關問題