4

您好即時通訊試圖找出如何正確安裝Firefox附加組件SDK,我已經照着所有的安裝細節,如:安裝Python 2.7,正確設置我的路徑變量,並運行從我的插件CMD.EXE ..每次我在命令行運行開始開發一個插件我得到這個錯誤:錯誤安裝的Firefox附加組件SDK的Python

C:\mozilla-build\addon-sdk\bin>activate.bat 
    Warning: Failed to find Python installation directory 

I來自我的理解我所擁有的一切配置正確,任何人都可以用這個錯誤幫助。也是我的PATH變量如下

User Variables...;C:\mozilla-build\addon-sdk\bin;C:\mozilla-build\python;C:\Python27 
    SYSTEM Variables ...;C:\mozilla-build\addon-sdk\bin;C:\mozilla-build\python;C:\Python27 

回答

8

這個問題似乎是有問題的激活批處理文件來設置變量PYTHONINSTALL的寫入值。 我通過手動設置並刪除所有用於檢測路徑的臃腫函數Mozilla來解決此問題。

打開bin \ activate.bat文件與編輯器(NP ++清楚地一起工作) 下:CheckPython標籤刪除功能和意見,並使用它來設置你的Python安裝路徑:

:CheckPython 
::CheckPython(retVal, key) 
::Reads the registry at %2% and checks if a Python exists there. 
::Checks both HKLM and HKCU, then checks the executable actually exists. 

SET key=%2% 
SET "%~1=" 
SET reg=reg 
if defined ProgramFiles(x86) (

    if exist %WINDIR%\sysnative\reg.exe SET reg=%WINDIR%\sysnative\reg.exe 
) 
rem here you should make sure to set the correct path 
set PYTHONINSTALL=C:\Program Files\Python27 
if exist %PYTHONINSTALL%\python.exe goto :EOF 

if exist %PYTHONINSTALL%\PCBuild\python.exe (set "PYTHONINSTALL=%PYTHONINSTALL%\PCBuild" & goto :EOF) 

if exist %PYTHONINSTALL%\PCBuild\amd64\python.exe (set "PYTHONINSTALL=%PYTHONINSTALL%\PCBuild\amd64" & goto :EOF) 



GOTO :EOF 
1

我使用的是Windows 7同樣的問題,這是我做過什麼,使其工作

  1. 冉MozillaBuildSetup工具冉蟒-2.7.5.msi內C:\ Mozilla的構建\蟒
  2. 在插件-SDK文件夾打開的命令提示和跑倉\激活

我不知道還有更多,所以希望這能解決它!

+0

@Krispcheez,我仍然得到同樣的錯誤,你是如何配置你的PATH變量,實際上指向python? –

+0

我沒得 – Krispycheez

+0

@RicoPlasakoi,看看你是否修改activate.bat並添加你所得到的回聲%PYTHONINSTALL%後,每一個「設置PYTHONINSTALL =%PYTHONINSTALL:=%」的CheckPython – Krispycheez

4

我有同樣的問題太多,似乎更改默認安裝目錄蟒蛇可能導致此問題。

  1. 確保您已安裝python version 2.5, 2.6 or 2.7。 Python的版本3.x將不起作用。
  2. 在其默認路徑C:/Python32/安裝Python。
  3. 在addon-sdk文件夾中打開命令提示符並運行bin \ activate。
+1

重新安裝Python到默認目錄工作,但默認路徑是'c:/ Python27'在我的案例中 – Calculemus

0

這裏的分離路徑(可能)由REG查詢返回的另一種方式,獨立於Windows版本:

  1. 更換隻能保證單詞的查詢結果,REG_SZ,具有獨特的單個字符,例如?。 (見後面的註釋)
  2. 然後使用獨特的單字符,如果找到了,如果有的話在2個令牌拆分查詢結果並只獲得第二屆一個。
  3. 最後,修剪此類標記左側的製表符和空格以獲取路徑。

注: 問號實際上可能是一個路徑的一部分,儘管這似乎是不尋常的。理想情況下,應該是不允許的路徑字符:|<>,等等。但其中一些給了我們麻煩逃脫他們。

檢查時還有與原代碼的另一個問題,:

if exist %PYTHONINSTALL%\whatever goto :EOF 

正在檢查的路徑應包含在雙引號,考慮到含空格的路徑。

因此,總而言之,這是另一種實現方式,例如,只是爲了HKML部分:

rem Try HKLM 
SET QueryResult= 
FOR /F "usebackq delims=" %%r IN (`%reg% QUERY HKLM\%key% /ve 2^>NUL`) DO @SET QueryResult=%%r 

SET ReplacedResult=%QueryResult:REG_SZ=?% 
FOR /F "tokens=2 delims=?" %%t IN ("%ReplacedResult%") DO SET "%~1=%%t" 

rem trim tabs and spaces from the left (note: there's a literal tab in next line) 
FOR /F "tokens=* delims=  " %%v IN ("%PYTHONINSTALL%") DO SET PYTHONINSTALL=%%v 

if exist "%PYTHONINSTALL%\python.exe" goto :EOF 
rem It may be a 32bit Python directory built from source, in which case the 
rem executable is in the PCBuild directory. 
if exist "%PYTHONINSTALL%\PCBuild\python.exe" (set "PYTHONINSTALL=%PYTHONINSTALL%\PCBuild" & goto :EOF) 
rem Or maybe a 64bit build directory. 
if exist "%PYTHONINSTALL%\PCBuild\amd64\python.exe" (set "PYTHONINSTALL=%PYTHONINSTALL%\PCBuild\amd64" & goto :EOF) 

請看看this Github commit看到實際的差異。

2

這是2015年,我懷疑大多數用戶可以得到的Firefox附加組件SDK的第一次嘗試工作不碰爲Windows的一些代碼,甚至被安裝在默認位置Python的...

這裏就是我得到了它安裝了Python

使用V2.7

在activate.bat周圍線的111你有:

變化

set PYTHONINSTALL=%PYTHONINSTALL:REG_SZ="C://Python27" 

或者將其設置爲Python安裝的位置。而已!

+0

它確實是2015年,它非常難過......我不能相信似乎至少在3年前已經發現的問題沒有被像Mozilla這樣的機構所關注! – ysap

+0

@ysap我認爲Mozilla忘了我們Windows用戶:) Linux不需要手術。 – FredTheWebGuy