我的電腦中只安裝了一個python设凹,即python 3.7.2,除pip和setuptools外,僅安裝了一個virtualenv。
pip list顯示如下:
創(chuàng)建虛擬環(huán)境后執(zhí)行activate命令激活虛擬環(huán)境席噩,然后安裝django,pip list顯示如下:
到這里都沒有疑問贤壁。
然而在退出虛擬環(huán)境后再次pip list悼枢,卻發(fā)現(xiàn)列表中仍然存在django包,此時運行where python命令脾拆,能夠找到兩個python.exe馒索,一個是系統(tǒng)的,一個虛擬環(huán)境中的:
出現(xiàn)這個問題是因為名船,當前路徑下(虛擬環(huán)境)有一個python绰上,所以即便未激活虛擬環(huán)境,系統(tǒng)仍然可以找到當前路徑下的python.exe渠驼,另外當然可以通過環(huán)境變量找到系統(tǒng)環(huán)境中的python.exe蜈块。
此時只要退出這個路徑,就會發(fā)現(xiàn)只能找到一個python.exe了:
此時再查看pip list迷扇,就會回到?jīng)]有django的狀態(tài)百揭。
經(jīng)過此次測試,了解了系統(tǒng)執(zhí)行python命令的方式(也是DOS命令行執(zhí)行方式)谋梭,就是首先在當前路徑查找所需命令,然后才進入環(huán)境變量路徑查找倦青。查找分先后瓮床,并且在多處存在同樣可執(zhí)行命令時,執(zhí)行先找到的命令产镐。
比如在虛擬環(huán)境目錄下隘庄,即使未激活虛擬環(huán)境,執(zhí)行pip install命令安裝一個包癣亚,也是直接安裝在虛擬環(huán)境目錄下丑掺,而不會安裝到系統(tǒng)目錄下。