[問題]用Visual Studio編譯時產生的ValueError
各位好,新人發問,冒犯之處請見諒。
我最近正再研究如何以python啟動JVM並執行.class檔,而我所找到的解法是
Pyjnius(http://pyjnius.readthedocs.org/en/latest/),於是我便開始安裝。
在他的文件中有提到,需要先安裝JDK以及Cython。JDK使用的是JDK7u5。
但是在安裝Cython時出現了問題。
首先是無法安裝。安裝時出現了Unable to find vcvarsall.bat。
我自己拜google的結果提到了兩種解法:安裝 MinGW 與安裝 VS 2008 Express。
MinGW已確認是最新版,而2008的官方連結已被移除,所以我裝了2012。
但是問題仍沒有解決。
後來我在這位的blog找到了原因與解法:
http://blog.csdn.net/xueyunf/article/details/8924312
"它是在註冊表中尋找到 vs 的目錄,再去在 vs 目錄下找 vcvarsall.bat。
但是問題就出在 python 裡面默認是 vc9.0 也就是 vs2008
所以它在註冊表裡面找不到鍵值"
於是我開始著手修改 msvc9compiler.py (C:/Python32/Lib/distutils 目錄下)
將原本的
vc_env = query_vcvarsall(VERSION, plat_spec)
修改為
vc_env = query_vcvarsall(11.0, plat_spec) #VS2012 = VC11.0
如此一來Cython終於安裝成功了。
但是在試驗時又發生問題。
我依照 Cython的文件試作了一個.pyx,它應該要被編譯成可以被import的.so。
但出現了 ValueError: [u'path', u'include', u'lib']
我再次google的結果,發現了http://bugs.python.org/issue7511,
我依照他提供的msvccompiler9_27.diff 修改了我的msvc9compiler.py,
而問題還是沒解決。
錯誤是NameError: name 'KEY_BASE' is not defined
我已經依照註解內的敘述更新環境變數了,但這個問題依然存在,困擾了我四天。
想請問有沒有人有相同的問題? 或是能提供一些方向?
最後貼上最後一次的全部的錯誤訊息。
d:\Python_Emample\Cython\helloworld>python setup.py build_ext --inplace
Traceback (most recent call last):
File "setup.py", line 3, in <module>
from Cython.Distutils import build_ext
File "C:\Python27\lib\site-packages\Cython\Distutils\__init__.py", line 1,
in <module>
from Cython.Distutils.build_ext import build_ext
File "C:\Python27\lib\site-packages\Cython\Distutils\build_ext.py", line
19, in <module>
from distutils.command import build_ext as _build_ext
File "C:\Python27\lib\distutils\command\build_ext.py", line 23, in <module>
from distutils.msvccompiler import get_build_version
File "C:\Python27\lib\distutils\msvccompiler.py", line 657, in <module>
from distutils.msvc9compiler import MSVCCompiler
File "C:\Python27\lib\distutils\msvc9compiler.py", line 69, in <module>
r"v%sA"
NameError: name 'KEY_BASE' is not defined
--
◤ ◥ ◢ ◣
傑米,炸掉它吧。 ⊙▁⊙─ ─⊙▂⊙ 碰到問題,用C4就對了!
╰ ∕皿﹨ ◥皿◤ ╯
◥█◤◢ ◥ ︶◤
Adam Savage ◤ ︶ ◥◤ ﹨▼∕◥ Jamie Hyneman
MYTHBUSTERS ◥ ◤\◥ by dajidali
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.172.117.97
→
06/27 10:49, , 1F
06/27 10:49, 1F
→
06/27 10:51, , 2F
06/27 10:51, 2F
→
06/27 10:51, , 3F
06/27 10:51, 3F
→
06/27 21:03, , 4F
06/27 21:03, 4F
→
06/28 09:18, , 5F
06/28 09:18, 5F
推
06/28 10:07, , 6F
06/28 10:07, 6F
推
06/28 15:38, , 7F
06/28 15:38, 7F
to ming1053:您說的是,我也認為能夠實現python/java協作的方法不只有一種,
因此我的問題才會是「以VS編譯時產生的錯誤解決法」,而不是「要怎麼用python執行java」
另外也感謝上面兩位,我接下來會嘗試改用jython。
※ 編輯: KagiJhou 來自: 61.227.253.119 (06/28 18:03)
推
06/28 19:15, , 8F
06/28 19:15, 8F
→
06/28 19:16, , 9F
06/28 19:16, 9F
推
07/01 07:48, , 10F
07/01 07:48, 10F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
Python 近期熱門文章
PTT數位生活區 即時熱門文章