conda虛擬環境下pip install 和 conda install 的區別 以及 查看 和 修改 虛擬環境下運行路徑


以下內容轉載自: https://www.cnblogs.com/yibeimingyue/p/14660246.html

 

先來說明我的問題:首先我在anoconda下建立了自己的虛擬環境,並在我的虛擬環境中用pip安裝了對應版本的tensorflow,但是再調用的時候,我發現並沒有調用我安裝的tensorflow版本。導致我的代碼無法運行。因此我產生了一個疑惑,pip安裝的包和conda安裝的包的位置是否不同,我在運行的時候到底用的是那個環境下的包。

注:miniconda3 和 我文中提到的anoconda3差不多,因為大部分是anoconda3,因此雖然機器上裝的是miniconda3,但文章中在寫的時候用的是anoconda3,只是命名的問題。

經查閱資料發現:

1.使用conda install在虛擬環境中安裝的包都存放在了/anoconda3/pkgs 這個路徑下,然后,我們在我們的虛擬環境中要用到或下載時先到該路徑下去找,若有則直接將其復制到我們的虛擬環境中包得存放位置:~/anoconda3/envs/xxx/lib/python3.6/site-packages/。若沒有,則先下載到/anoconda3/pkgs,在復制到虛擬環境包的路徑下。

2.而在虛擬環境中使用pip install 安裝時,則直接將包安裝在了~/anoconda3/envs/xxx/lib/python3.6/site-packages/路徑下。

問題分析

到這里,我們就知道了二者安裝包后包所在的位置,那么為什么還會出現我上面的問題呢,原因就是,你雖然在你的虛擬環境下運行代碼,但是你的實際運行環境並不一定就是你的包的安裝路徑,也就是說,你雖然在你創建的虛擬環境中將一切包都安裝好了,但是在運行代碼,python在編譯時,程序並沒有去:~/anoconda3/envs/xxx/lib/python3.6/site-packages/這個路徑下調用。而是去了優先級更高的別的路徑下調用,自然就會出現上述問題。那么如何查看,我當前虛擬環境的實際運行路徑呢?

我們使用 python -m site 來查看,結果類似下面:

 

 

 問題解決

查看USER_SITE 和 USER_BASE 是否對應了你的包安裝的路徑。如果不是,你就要將其按照上面的格式修改:

修改方式:打開 ~/anaconda3/envs/XXX/lib/python3.6/site.py

找到USER_SITE 和 USER_BASE 並人為賦值即可。這樣我的問題到此就解決了。

問題思考

那么為什么會產生我這個問題呢,我仔細分析了一下,后來發現:

先來說明我的問題:首先我在anoconda下建立了自己的虛擬環境,並在我的虛擬環境中用pip安裝了對應版本的tensorflow,但是再調用的時候,我發現並沒有調用我安裝的tensorflow版本。導致我的代碼無法運行。因此我產生了一個疑惑,pip安裝的包和conda安裝的包的位置是否不同,我在運行的時候到底用的是那個環境下的包。

注:miniconda3 和 我文中提到的anoconda3差不多,因為大部分是anoconda3,因此雖然機器上裝的是miniconda3,但文章中在寫的時候用的是anoconda3,只是命名的問題。

經查閱資料發現:

1.使用conda install在虛擬環境中安裝的包都存放在了/anoconda3/pkgs 這個路徑下,然后,我們在我們的虛擬環境中要用到或下載時先到該路徑下去找,若有則直接將其復制到我們的虛擬環境中包得存放位置:~/anoconda3/envs/xxx/lib/python3.6/site-packages/。若沒有,則先下載到/anoconda3/pkgs,在復制到虛擬環境包的路徑下。

2.而在虛擬環境中使用pip install 安裝時,則直接將包安裝在了~/anoconda3/envs/xxx/lib/python3.6/site-packages/路徑下。

問題分析

到這里,我們就知道了二者安裝包后包所在的位置,那么為什么還會出現我上面的問題呢,原因就是,你雖然在你的虛擬環境下運行代碼,但是你的實際運行環境並不一定就是你的包的安裝路徑,也就是說,你雖然在你創建的虛擬環境中將一切包都安裝好了,但是在運行代碼,python在編譯時,程序並沒有去:~/anoconda3/envs/xxx/lib/python3.6/site-packages/這個路徑下調用。而是去了優先級更高的別的路徑下調用,自然就會出現上述問題。那么如何查看,我當前虛擬環境的實際運行路徑呢?

我們使用 python -m site 來查看,結果類似下面:

 

 

 問題解決

查看USER_SITE 和 USER_BASE 是否對應了你的包安裝的路徑。如果不是,你就要將其按照上面的格式修改:

修改方式:打開 ~/anaconda3/envs/XXX/lib/python3.6/site.py

找到USER_SITE 和 USER_BASE 並人為賦值即可。這樣我的問題到此就解決了。

問題思考

那么為什么會產生我這個問題呢,我仔細分析了一下,后來發現:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM