2016-08-21 138 views
2

我在GO中开发了一个appengine应用程序,现在我尝试使用androidpublisher api。为此,我需要很多的依赖关系,如:golang appengine - 文件名太长

  • github.com/google/google-api-go-client
  • github.com/golang/oauth2
  • google.golang.org/appengine
  • google.golang.org/appengine/urlfetch

我试图建立的oauth2认证为谷歌的API-GO-客户根据示例https://github.com/golang/oauth2

一切看起来都很好,但我无法在Windows开发机器上运行应用程序服务器。它抱怨过长的文件名:

INFO  2016-08-20 22:48:03,786 devappserver2.py:769] Skipping SDK update check. 
INFO  2016-08-20 22:48:03,960 api_server.py:205] Starting API server at: http://localhost:64053 
INFO  2016-08-20 22:48:03,969 dispatcher.py:197] Starting module "default" running at: http://localhost:8080 
INFO  2016-08-20 22:48:03,974 admin_server.py:116] Starting admin server at:http://localhost:8000 

Exception in thread Instance Adjustment: Traceback (most recent call last): 
    File "C:\Python27\lib\threading.py", line 801, in __bootstrap_inner 
     self.run() 
    File "C:\Python27\lib\threading.py", line 754, in run 
     self.__target(*self.__args, **self.__kwargs) 
    File "C:\work\go_appengine\google\appengine\tools\devappserver2\module.py",line 1485, in _loop_adjusting_instances 
     self._adjust_instances() 
    File "C:\work\go_appengine\google\appengine\tools\devappserver2\module.py",line 1460, in _adjust_instances 
     self._add_instance(permit_warmup=True) 
    File "C:\work\go_appengine\google\appengine\tools\devappserver2\module.py",line 1338, in _add_instance 
     expect_ready_request=perform_warmup) 
    File "C:\work\go_appengine\google\appengine\tools\devappserver2\go_runtime.py",line 174, in new_instance 
     if self._go_application.maybe_build(self._modified_since_last_build): 
    File "C:\work\go_appengine\google\appengine\tools\devappserver2\go_application.py",line 304, in maybe_build 
     self._extras_hash, old_extras_hash = (self._get_extras_hash(), 
    File "C:\work\go_appengine\google\appengine\tools\devappserver2\go_application.py",line 247, in _get_extras_hash gab_stdout, 
     _ = self._run_gab(gab_args, env={}) 
    File "C:\work\go_appengine\google\appengine\tools\devappserver2\go_application.py",line 175, in _run_gab 
     gab_extra_args, env) 
    File "C:\work\go_appengine\google\appengine\tools\devappserver2\go_application.py",line 111, in _run_gab 
     env=env) 
    File "C:\work\go_appengine\google\appengine\tools\devappserver2\safe_subprocess.py",line 74, in start_process 
     stdin=subprocess.PIPE, startupinfo=startupinfo) 
    File "C:\Python27\lib\subprocess.py", line710, in __init__ 
     errread, errwrite) 
    File "C:\Python27\lib\subprocess.py", line 958, in _execute_child 
     startupinfo) 
    WindowsError: [Error 206] The filename or extension is too long 

我觉得我GOPATH设置错了,所以他给所有gofiles作为参数传递给go-app-builder.exe

我的项目是C:\Users\me\project\下,这也正是GOPATH点,并且我站在当我输入:

goapp.bat serve . 

有人帮助解决这个问题?谢谢。

编辑

我的项目结构是这样的: 我应该怎么设置我的GOPATH?

GOPATH 
    $GOPATH 
     app.yaml 
     cron.yaml 
     pkg 
     src 
      testapp 
       app.go 
     golang.org 
      x 
        oauth2 

编辑2

我试着将我的GOPATH到项目的根目录/ GOPATH但现在我收到此错误信息:

Exception in thread Instance Adjustment: Traceback (most recent call last): File "C:\Python27\lib\threading.py", line 810, in 
__bootstrap_inner 
    self.run() File "C:\Python27\lib\threading.py", line 763, in run 
    self.__target(*self.__args, **self.__kwargs) File "C:\Users\Indra\development\tools\go_appengine\google\appengine\tools\devappserver2\module.py", line 1486, in _loop_adjusting_instances 
    self._adjust_instances() File "C:\Users\Indra\development\tools\go_appengine\google\appengine\tools\devappserver2\module.py", line 1461, in _adjust_instances 
    self._add_instance(permit_warmup=True) File "C:\Users\Indra\development\tools\go_appengine\google\appengine\tools\devappserver2\module.py", line 1339, in _add_instance 
    expect_ready_request=perform_warmup) File "C:\Users\Indra\development\tools\go_appengine\google\appengine\tools\devappserver2\go_runtime.py", line 176, in new_instance 
    if self._go_application.maybe_build(self._modified_since_last_build): File "C:\Users\Indra\development\tools\go_appengine\google\appengine\tools\devappserver2\go_application.py", line 304, in maybe_build 
    self._extras_hash, old_extras_hash = (self._get_extras_hash(), File "C:\Users\Indra\development\tools\go_appengine\google\appengine\tools\devappserver2\go_application.py", line 247, in _get_extras_hash 
    gab_stdout, _ = self._run_gab(gab_args, env={}) File "C:\Users\Indra\development\tools\go_appengine\google\appengine\tools\devappserver2\go_application.py", line 175, in _run_gab 
    gab_extra_args, env) File "C:\Users\Indra\development\tools\go_appengine\google\appengine\tools\devappserver2\go_application.py", line 111, in _run_gab 
    env=env) File "C:\Users\Indra\development\tools\go_appengine\google\appengine\tools\devappserver2\safe_subprocess.py", line 74, in start_process 
    stdin=subprocess.PIPE, startupinfo=startupinfo) File "C:\Python27\lib\subprocess.py", line 710, in __init__ 
    errread, errwrite) File "C:\Python27\lib\subprocess.py", line 958, in _execute_child 
    startupinfo) WindowsError: [Error 87] Falscher Parameter 

所有非德国用户就抱怨一个错误的参数

+0

不要传递点''',只需从'goapp serve'开始。这是否解决了它? – icza

+0

使用命令'goapp.bat serve <路径到包含app.yaml的目录>'或cd到该目录并运行'goapp.bat serve'。如果这不能解决问题,那么看看http://stackoverflow.com/questions/38711615/appengine-appengine-package-always-fails-with-syscall-or-unsafe-import-fai/38713152#38713152 。您可能会将GOPATH指向应用程序目录。 –

+0

'goapp serve'没有解决它。是的,我的GOPATH指向appdirectiory。我用我目前的目录结构编辑我的文章。 – user3603632

回答

0

我通过设置我的GOPATH解决了这个问题。

它现在这样设置:

GOPATH=C:\Users\me\development\appengine\gopath;C:\Users\me\project 

现在一切正常查找并上传的文件,现在要小得多。 2MB与11MB。

感谢您的提示。