1

我知道您可以使用端口转发“远程”编写 android 脚本,使用以下命令:

adb forward tcp:9999 tcp:<android port no>
export AP_PORT=9999

然后在python2.6中:

Python 2.6.1 (r261:67515, Jul  7 2009, 23:51:51) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import android
>>> droid = android.Android()
>>> droid.makeToast("this works")
Result(id=0, result=None, error=None)

这很好用,但后来我想用 VIM (macVim) 尝试它。我可以使用的想法是:

map <buffer> <S-e> :w<CR>:!/usr/bin/python2.6 % <CR>

在我的 .vimrc 中运行我正在编辑的代码。这适用于在 mac 上测试 python 脚本。但是当我用android尝试它时,如果我尝试运行它(另存为and.py),我会得到以下信息:

import android
droid = android.Android()
droid.makeToadt("hihi")


:!/usr/bin/python2.6 and.py
Traceback (most recent call last):
  File "and.py", line 2, in <module>
    droid = android.Android()
  File "/Library/Python/2.6/site-packages/android.py", line 34, in __init__
    self.conn = socket.create_connection(addr)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/socket.py", line 498, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
socket.gaierror: [Errno 8] nodename nor servname provided, or not known

我假设导出 AP_PORT=9999 对 vim 不“可见”,因为问题似乎在于创建self.conn. 有任何想法吗?有没有人使用这种方法?

我没有使用模拟器,因为我的电脑太慢了。

4

1 回答 1

2

你需要在vim的环境中设置环境变量。采用:

:let $AP_PORT=9999

设置它 - 这将由您生成的 python 子进程继承。

于 2012-04-05T11:05:44.907 回答