我開始使用Continuum.io的Anaconda軟件包來完成scipy工作。我已經能夠啓動anaconda並運行了,但是我無法分辨anaconda是否爲它創建的每個新環境創建了一個新的PYTHONPATH環境變量,或者它是否依賴於通用系統PYTHONPATH?我在文檔中找不到關於此的任何信息。此外,當我做了一個printenv時,我沒有在新創建的環境中看到一個PYTHONPATH變量 - 儘管我找到了一些新的anaconda創建的環境變量。我能找到的最好的方法是,anaconda將一些anaconda目錄和新的環境目錄添加到PATH變量的頭部 - 但這並不一定會將新包與系統環境隔離開,但它很接近。有沒有人知道這個問題的答案,或者找到了解決這個問題的方法。anaconda是否爲每個新環境創建一個單獨的PYTHONPATH變量?
25
A
回答
23
不,唯一需要爲Anaconda環境修改的是PATH(以便它可以從環境bin/
目錄獲得正確的Python,或者在Windows上獲得正確的Python Scripts\
)。
Anaconda環境的工作方式是它們硬連接安裝到環境中的所有東西。對於所有意圖和目的,這意味着每個環境都是一個完全獨立的Python和所有包的安裝。通過使用硬鏈接,這是高效完成的。因此,沒有必要混淆PYTHONPATH,因爲環境中的Python二進制文件已經搜索了環境中的站點包以及環境的lib,等等。
15
Anaconda不使用PYTHONPATH
。但是請注意,如果設置了PYTHONPATH
,則可以使用它來加載不在anaconda環境中的庫。這就是爲什麼激活一個環境之前,它可能是好做一個
unset PYTHONPATH
例如這個PYTHONPATH點不正確的大熊貓lib目錄下:
export PYTHONPATH=/home/john/share/usr/anaconda/lib/python
source activate anaconda-2.7
python
>>>> import pandas as pd
/home/john/share/usr/lib/python/pandas-0.12.0-py2.7-linux-x86_64.egg/pandas/hashtable.so: undefined symbol: PyUnicodeUCS2_DecodeUTF8
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/john/share/usr/lib/python/pandas-0.12.0-py2.7-linux-x86_64.egg/pandas/__init__.py", line 6, in <module>
from . import hashtable, tslib, lib
ImportError: /home/john/share/usr/lib/python/pandas-0.12.0-py2.7-linux-x86_64.egg/pandas/hashtable.so: undefined symbol: PyUnicodeUCS2_DecodeUTF8
取消設置PYTHONPATH
防止錯誤的大熊貓LIB被加載:
unset PYTHONPATH
source activate anaconda-2.7
python
>>>> import pandas as pd
>>>>
相關問題
- 1. 是否有每個循環中創建的新變量?
- 2. 爲列表中的每個元素創建一個單獨的變量
- 3. 創建一個新的變量循環
- 4. 在foreach循環中爲每個循環創建一個新變量
- 5. Ansible爲每個環境創建目錄
- 6. 是否Rails爲每個應用程序創建一個單獨的數據庫
- 7. 爲循環中的每個新文件創建一個變量文件名,python
- 8. 爲表中的每一行創建單獨的變量?
- 9. 爲每個批量更新或多個URL創建一個URL是否更好?
- 10. 環境變量的單獨文件 - ReactJS
- 11. jmx是否爲每個調用創建一個新線程?
- 12. 如何爲每個組件創建一個單獨的塊?
- 13. 如何爲每個目標創建一個單獨的NIB?
- 14. 如何爲tomcat創建環境變量?
- 15. 如何訪問Anaconda環境變量?
- 16. 如何在一個循環中創建一個新的變量
- 17. Bash:每個登錄環境變量
- 18. 在Anaconda創建Python 3.4環境
- 19. 環境變量的目的是什麼PYTHONPATH
- 20. Ruby on Rails的創建一個新的變量作出每個
- 21. java.lang.Process是否可以繼承另一個java.lang.Process的環境變量?
- 22. 環境變量,引用另一個環境變量
- 23. 從另一個Jenkins環境變量設置Jenkins環境變量
- 24. 是否有一個ExecutorService爲每個任務創建一個新的線程?
- 25. 播放是否支持每個環境的單獨路徑文件 - dev,uat,prod?
- 26. 爲每個新的NSOperation或Thread創建一個新的NSManagedObjectContext是否足夠?
- 27. 在函數中創建一個變量 - 多線程環境
- 28. 如何創建一個python 2.7環境變量?
- 29. 從while循環創建單個變量
- 30. 爲每一個總值到單獨的變量R和在HTML
但是並不是每個Python軟件包都可以在Anaconda中使用,那麼當您也使用pip來安裝軟件包時,怎麼樣?那麼你確實需要一個(Python版本特定的)PYTHONPATH,所以你需要擔心在每個shell中/每次你獲得'activate'腳本來改變Python版本時改變/設置它。對? – smci