2017-02-21 132 views
2

完全錯誤的語句:嘗試從Pycharm安裝sklearn時出錯| arrayobject.h不能絕對化

ValueError: path '/home/andy/anaconda3/lib/python3.5/sitepackages/numpy/core/include/numpy/arrayobject.h' cannot be absolute

我已經從這個link下載編譯車輪文件,然後使用pip cmd中安裝它安裝SciPy的和numpy的(MKL)版本。

我更喜歡python noob,我的重點主要是機器學習。請幫助我。

回答

6

聽着,我今天遇到了類似的問題的絕對路徑。

你使用Python 3.6(最新版本)嗎?

如果你這樣做,你可能會考慮降級(重新安裝實際)到Python 3.5 ..顯然,sklearn目前支持Python 3.6的問題很少。

+1

該死!我正在使用python 3.6!讓我改變這一點。 – user3301776

+1

太棒了!這解決了我的問題。非常感謝! – user3301776

+1

同樣的問題在這裏......已經浪費了很多時間來修復basetsd.h錯誤,因爲他們知道他們需要win10 sdk for vc 2015,現在這個:( –

2

hmm..maybe就是了相對路徑,即../include/numpy/不包含../arrayobject.h

+2

那麼我該怎麼做? 我沒有手動指定路徑! – user3301776

4

我還從link安裝了NumPy和SciPy,並在嘗試從PyPI安裝scikit-learn時得到了相同的錯誤。從the same link安裝scikit-learn解決了這個問題。

+1

感謝您的回答!我還在此鏈接之前安裝了Numpy-MKL並在安裝scikit-learn時遇到同樣的問題。 –

2

這是由於包含在源文件中找到的文件的絕對路徑導致的錯誤,在Windows上編譯時無法通過distutils自動將其轉換爲正確的系統路徑。

解決此特定問題的最簡單方法是在PYTHONPATH \ lib \ distutils \ util.py中的「util.py」中添加幾行代碼。添加到函數「convert_path」的開頭。

if pathname.startswith('/usr/local/lib/python3.5/dist-packages/numpy/core/include/numpy/'): 
     paths = pathname.split('/') 
     return 'C:\\Python36\\Lib\\site-packages\\numpy\\core\include\\numpy\\'+paths[-1] 
+0

工作得很好 - 使用Miniconda3進行測試 – N0dGrand87