最近完全被python的各種版本,安裝包,工具什麼的弄瘋了,感覺與python相關的東西太多了,一時間讓人分辨不出來到底什麼是乾什麼的。於是,我瘋狂的查閱各種資料,才逐漸慢慢理解了與python相關的各種工具和包。下麵,將我的困惑記錄下來,希望可以和有同樣煩惱的朋友分享! 1. conda、pip和 ...
最近完全被python的各種版本,安裝包,工具什麼的弄瘋了,感覺與python相關的東西太多了,一時間讓人分辨不出來到底什麼是乾什麼的。於是,我瘋狂的查閱各種資料,才逐漸慢慢理解了與python相關的各種工具和包。下麵,將我的困惑記錄下來,希望可以和有同樣煩惱的朋友分享!
1. conda、pip和anaconda到底是幹嘛的,有什麼區別?
在各種網站上找了好久,最後發現其實這些問題都可以從官方網站上找到。關於conda和anaconda可以從anaconda官網找到,關於pip可以從python官網找到。下麵我簡單摘錄一些網站上的說明供大家參考。
anaconda、miniconda和conda
什麼是anaconda
anaconda是一種開源的,易安裝的高性能python和R發行版,它集成了conda包和環境管理工具,並且有1000+免費社區支持的開源包。
It is an open source, easy-to-install high performance Python and R distribution, with the conda package and environment manager and collection of 1,000+ open source packages with free community support.
為什麼要用anaconda
安裝python作為終端一點也不好玩。許多科學包要求python的特定版本才能運行,並且它很難使各種包交互。很難保持更新。anaconda發行版可以快速簡單的獲取和更新這些包。Python學習交流群125240963每天更新資料,包括2018最新企業級項目案例
Installing Python in a terminal is no joy. Many scientific packages require a specific version of Python to run, and it’s difficult to keep them from interacting with each other. It is even harder to keep them updated. Anaconda Distribution makes getting and maintaining these packages quick and easy.
什麼是miniconda?
miniconda是沒有1000+開源包的發行版,使用miniconda你只能使用conda命令安裝你想用的包。
It’s Anaconda Distribution without the collection of 1,000+ open source packages.
With Miniconda you install only the packages you want with the conda command,
什麼是anaconda navigator?
anaconda navigator 可以非常容易的使用圖形化python編程而不需要使用命令行。
Anaconda Navigator is an easy way to use graphical Python programs without having to use command line commands.
從這裡我們可以知道,anaconda是一個平臺,而conda是包和環境管理工具。
在python官方文檔中的安裝工具建議中可以看到,pip是一個安裝python包的工具。
那麼pip與conda有什麼區別呢?
conda是Anaconda Python安裝的軟體包管理工具。 Anaconda Python是Continuum Analytics的一個發行版,專門針對科學界,尤其是在二進位擴展安裝通常很困難的Windows上。
Conda是一個完全獨立的工具,用於管理,虛擬化和輪式,但在包管理,虛擬環境管理和二進位擴展的部署方面提供了許多它們的組合功能。
Conda不從PyPI安裝軟體包,只能從官方的Continuum存儲庫或anaconda.org(用戶提供的conda軟體包的地方)或本地(例如內聯網)軟體包伺服器進行安裝。 但是請註意,可以將pip安裝到並且與conda一起工作來管理來自PyPI的分發。
conda is the package management tool for Anaconda Python installations. Anaconda Python is a distribution from Continuum Analytics specifically aimed at the scientific community, and in particular on Windows where the installation of binary extensions is often difficult. Conda is a completely separate tool to pip, virtualenv and wheel, but provides many of their combined features in terms of package management, virtual environment management and deployment of binary extensions. Conda does not install packages from PyPI and can install only from the official Continuum repositories, or anaconda.org (a place for user-contributed conda packages), or a local (e.g. intranet) package server. However, note that pip can be installed into, and work side-by-side with conda for managing distributions from PyPI.
2、什麼叫做包,常用的包有哪幾個,每個包的作用是什麼?
從python的官方文檔可以看到,模塊概念的引入是為了方便代碼復用,提高代碼的可維護性的。如果程式越寫越長,那麼程式的可讀性就會越來越差,程式的 層次結構也會越來越不清晰。這時,我們可以把一個較長的程式分成很多容易維護的小文件,其類似於c語言中.h文件和.c文件的作用。
If you quit from the Python interpreter and enter it again, the definitions you have made (functions and variables) are lost. Therefore, if you want to write a somewhat longer program, you are better off using a text editor to prepare the input for the interpreter and running it with that file as input instead. This is known as creating a script. As your program gets longer, you may want to split it into several files for easier maintenance. You may also want to use a handy function that you’ve written in several programs without copying its definition into each program. To support this, Python has a way to put definitions in a file and use them in a script or in an interactive instance of the interpreter. Such a file is called a module; definitions from a module can be imported into other modules or into the main module (the collection of variables that you have access to in a script executed at the top level and in calculator mode).
而包的概念的引入是為了更方便的組織各個模塊,防止相同名稱的模塊發生衝突,類似於c#或c++中的命名空間的作用。比如,兩個不同包PA和PB都有同一個名字為M的模塊,那麼PA.M就表示PA包下麵的模塊M,PB.M就表示PB包下麵的模塊M。
Packages are a way of structuring Python’s module namespace by using “dotted module names”. For example, the module name A.B designates a submodule named B in a package named A. Just like the use of modules saves the authors of different modules from having to worry about each other’s global variable names, the use of dotted module names saves the authors of multi-module packages like NumPy or the Python Imaging Library from having to worry about each other’s module names.
更多關於包和模塊的概念可以閱讀下麵兩篇文章:
廖雪峰-模塊
python基礎-模塊和包介紹
3、如何安裝?
anaconda的安裝挺簡單的,只要從官方網站下載直接安裝就可。pip的安裝可以參考下麵的文章。
三步走安裝pip
windows下麵安裝Python和pip終極教程
4、python學習資源
這些資源都是我在網上找到的,僅僅在這裡列出來分享一下。
-
強烈推薦廖雪峰的官方網站,這真是小白的福音,不管是python2還是python3。裡面的內容通俗易懂,按照廖雪峰的話說就是
中文,免費,零起點,完整示例,基於最新的Python 3版本。
-
知乎-Python 有哪些好的學習資料或者博客?,這裡面有很多牛人提供了各種資源和鏈接
-
code123.cc,這裡面提供了許多實踐項目,可以幫助我們快速成長。
-
27 個機器學習、數學、Python 速查表,這裡麵包含了許多機器學習和python的資料
-
150 多個 ML、NLP 和 Python 相關的教程,這篇文章來自於伯樂線上,這個網站裡面也有很多學習資源,都非常好。
-
python官方文檔,當然官方的最權威,不過建議可以當做工具書來查,否則整天看這個不得無聊死!
-
網易雲課堂,作為國內領先的線上課程學習平臺,網易在這方面做的確實挺好。這裡面有非常多的課程,可以幫助你快速的學習。當然,也有很多慕課平臺,不管是國內的還是國內的,裡面肯定也有很多資源,在此就不在一一列舉了。
結論
當然,有這麼多資源並不能保證你能學會。畢竟,只有真真正的去學你才能真真正正的學會,否則,收集了這麼多資源也沒什麼用。其實,很多人有這種通病,有時候心血來潮,想學某個東西,網上下了一大堆資料,百度網盤存了一大堆資源,結果也只是放在那裡堆灰塵而已,甚至某天發現自己有這麼多資源的時候還很驚訝!
說了那麼多,其實,最重要的是去做,去行動,去實踐。