安装Firefox Addon SDK Python时出错

时间:2014-04-04 20:06:05

标签: firefox python-2.7 windows-7 firefox-addon firefox-addon-sdk

您好我试图弄清楚如何正确安装Firefox Addon SDK,我已经遵循了所有安装细节,例如:安装Python 2.7,正确设置我的PATH变量,以及从我的cmd.exe运行插件。每次我运行命令行开始开发插件我都会收到此错误:

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

根据我的理解,我已经正确配置了所有内容,任何人都可以帮助解决此错误。我的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

5 个答案:

答案 0 :(得分: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 :(得分:4)

我也有同样的问题,似乎更改python的默认安装目录会导致此问题。

  1. 确保您已安装python version 2.5, 2.6 or 2.7。 版本3.x的Python无效。
  2. 以默认路径C:/Python32/安装Python。
  3. 在addon-sdk文件夹中打开命令提示符并运行bin \ activate。

答案 2 :(得分:2)

2015年,我怀疑大多数用户可以在第一次尝试使用Firefox Addon SDK而无需触及某些Windows代码 - 即使Python安装在默认位置......

以下是我使用Python的v2.7安装它的方法

activate.bat 的第111行附近,你有:

set PYTHONINSTALL=%PYTHONINSTALL:REG_SZ=%

更改为

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

或者将其设置为Python安装的任何位置。而已!

答案 3 :(得分:1)

我在使用Windows 7时遇到了同样的问题,这就是我为使其工作所做的事情

  1. https://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-Latest.exe
  2. 中删除MozillaBuildSetup工具
  3. 在C:\ mozilla-build \ python
  4. 中运行python-2.7.5.msi
  5. 在addon-sdk文件夹中打开命令提示符并运行bin \ activate
  6. 我还不知道这个,所以希望这可以解决它!

答案 4 :(得分:0)

这是另一种隔离reg查询返回的路径(可能)的方法,与Windows版本无关:

  1. 将查询结果REG_SZ中唯一的保证字替换为唯一的单个字符,例如?。 (见后面的说明)
  2. 然后使用该唯一的单个字符(如果找到)将查询结果拆分为2个令牌,并仅获取第二个(如果有)。
  3. 最后,修剪此标记左侧的标签和空格,以获取路径。
  4. 注意: 问号实际上可能是路径的一部分,尽管这似乎并不常见。理想情况下,它应该是路径中不允许的字符:|<>,依此类推。但其中一些让我们摆脱了麻烦。

    在检查时,原始代码还存在另一个问题:

    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以查看实际差异。