在SO上阅读了几个Q&A之后,我意识到有一个选项,即QPython和Kivy为Android做编程,但是,显然两者都采用不同的方法.我试图验证我的理解,看看我是否遗漏了一些关键信息.
总的来说,结果(上述观点)的观点似乎更倾向于Kivy.理解是否正确?我错过了任何关键点吗?这不是一个修辞问题,我只是在寻找事实答案.
我在内部找到了这个很棒的模块,并将其作为zip文件下载.一旦我解压缩了zip文件,我将两个模块放在模块文件夹中的文件(setup和main文件)中,包括我需要运行的额外的read me文件.我尝试安装安装文件,但我无法安装它,因为控制台找不到它.所以我做了一些研究,我尝试使用pip来安装它,但这没有用.所以我想知道你是否有人能给我手动安装它和pip的步骤(请记住,需要安装setup.py文件才能使主模块工作).
谢谢!
是否可以在QPython的控制台/ REPL中访问以前输入的命令?向上和向下箭头只显示转义序列.我尝试Terminal type在screen,linux和之间切换选项vt100,但这似乎没有帮助.
一个相关的问题没有指出它是指QPython的控制台,并得到了一个不相关的答案.
我的手机有一个简单的问题:当我从wifi热点断开连接时,我的手机不会自动重新连接,因为它总是认为没有互联网.这是因为我的防火墙.我猜测Android手机试图ping服务器以检查是否存在Internet连接.
所以我现在要做的就是编写一个简单的脚本,不断扫描Wifi网络,直到它找到我过去连接过的网络.
它可能是一个非常简单的脚本,但我找不到实际连接到接入点的方法.
import threading
import androidhelper
droid = androidhelper.Android()
knownAPs = ["home-wifi","workAP"]
def autoConnect():
threading.Timer(5.0, autoConnect).start()
droid.wifiStartScan()
nearbyAPs = droid.wifiGetScanResults().result
for i, curAP in enumerate(nearbyAPs):
if curAP['ssid'] in knownAPs:
# ?connect to a wifi?
autoConnect()
Run Code Online (Sandbox Code Playgroud)
我在文档中遗漏了什么吗?知道我怎么能做到这一点?
编辑:
据说可以在QPython中使用Kivy库.我找不到一个如何实现它的例子.但也许这个问题可以解决吗?
我想在Qpython3上安装biopython,但它说我有python 3.2并且需要3.3或更高版本.是否有更高版本的QPython3版本?我可以以某种方式更新它吗?-谢谢
我正在运行 SL4A Python 2.6.2 解释器。这段代码可以正常工作:
import android
droid = android.Android()
Run Code Online (Sandbox Code Playgroud)
但是当我在同一台机器上运行 QPython 2.7.2 解释器时,同样的代码给了我错误:
AttributeError: 'module' object has no attribute 'Android'
Run Code Online (Sandbox Code Playgroud) 我正在尝试使一个标准的Android应用程序执行一个可以将值返回给Java的python脚本,但我面临很多问题.
Jython在Android环境中不支持这一点,SL4A是一个死机项目,Kivi似乎是完全没有使用Java的完整堆栈框架,而QPython是适用于Android 5+但几乎没有文档的SL4A.
我想要的东西:
// From INSIDE my Java Code
new PythonEngine().execute('a = 1 + 1').getInt('a')
Run Code Online (Sandbox Code Playgroud)
使用QPython,我找到了一个执行任意代码的示例,但我无法想象如何获得结果以及如何在不打开等待用户输入返回的新活动的情况下运行脚本.
那可能吗?这个例子可以在这里找到QPython Java Sample
我正在测试Googles colaboratory,我收到了一个错误
ImportError:没有名为qpython的模块
我知道,因为它是一个虚拟机,模块安装在那里但如果缺少一个是否有办法安装它?
谢谢!
我一直在尝试使用 python 从 KDB+ 数据库中获取元数据,基本上,我安装了一个名为qpython,并使用这个库我们连接和查询 KDB+ 数据库。
我想使用 python 在 KDB+ 数据库中存储表/视图的所有适当列的元数据。尽管尝试了多种不同的方法,但我无法分离元数据部分。
即一些将输出类型转换为列表/元组、使用迭代for等等。
from qpython import qconnection
def fetch_metadata_from_kdb(params):
try:
kdb_connection_obj = qconnection.QConnection(host=params['host'], port=params['port'], username=params['username'], password=params['password'])
kdb_connection_obj.open()
PREDICATE = "meta[{}]".format(params['table'])
metadata = kdb_connection_obj(PREDICATE)
kdb_connection_obj.close()
return metadata
except Exception as error_msg:
return error_msg
def fetch_tables_from_kdb(params):
try:
kdb_connection_obj = qconnection.QConnection(host=params['host'], port=params['port'], username=params['username'], password=params['password'])
kdb_connection_obj.open()
tables = kdb_connection_obj("tables[]")
views = kdb_connection_obj("views[]")
kdb_connection_obj.close()
return [table.decode() for table in list(tables)], [view.decode() for view in list(views)]
except Exception as error_msg:
return error_msg …Run Code Online (Sandbox Code Playgroud) 我需要选择并获取与前 1 小时和 24 小时相关的行。为了处理 24 小时,我使用了这个代码。1小时怎么样 我怎样才能得到它?
yesterday = datetime.now() - timedelta(1)
yesterday = datetime.strftime(yesterday, '%Y-%m-%d')
q.sendSync('{[x;z]select from trades where DateTime > x,symbol=z}', np.datetime64(yesterday,'D'), np.string_('ETH-USDT'))
Run Code Online (Sandbox Code Playgroud)
kdb 保存的数据帧
DateTime symbol
0 2022-04-13 12:59:00.171 b'ETH-USDT'
1 2022-04-13 12:30:00.171 b'ETH-USDT'
2 2022-04-13 10:55:00.171 b'ETH-USDT'
3 2022-04-12 10:59:00.171 b'ETH-USDT'
4 2022-04-10 10:53:00.185 b'ETH-USDT'
5 2022-04-09 10:50:01.114 b'ETH-USDT'
Run Code Online (Sandbox Code Playgroud) 我知道这里已经回答了这个问题,但是作为一个新的 q-bie,我仍然对如何使用 q 创建和插入新表感到困惑。
我的问题:我有一个数据框,我正在使用 qPython 连接到 kdb。我想将此数据帧作为新表写入 kdb。
我的问题:似乎我可以做这样的事情:
df = pd.DataFrame({'sym':['abc','def','ghi'],'price':[10.1,10.2,10.3]})
with qconnection.QConnection(host = 'localhost', port = 5001, pandas = True) as q:
q.sync('{t::x}',df)
Run Code Online (Sandbox Code Playgroud)
但{t::x}这里是什么?不会是我的表名吗?x 会是什么?
如何指定列类型和大小限制或不需要它们?谢谢!
我试图在查询完成后强制终止(而不是关闭)aq 会话,以节省计算机上的资源。
目前它正在使用:
conn.sendAsync("exit 0")
问题是,如果我在它之后再次运行查询(尝试重新打开连接并运行另一个查询),它可能会失败,因为之前的连接仍会被终止asynchronous。
因此,我尝试对synchronous查询执行相同的操作,但在尝试时:
conn.sendSync("exit 0")
我得到:
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
python-BaseException
Run Code Online (Sandbox Code Playgroud)
我可以指定一个超时,以便 q 会话在 10 秒后自动终止,或者也许还有另一种方法来强制终止 q 会话?
我的代码如下所示:
conn = qc.QConnection(host='localhost', port=12345, timeout=10000)
conn.open()
res = None
try:
res = conn.sendSync(query, numpy_temporals=True)
except Exception as e:
print(f'Error running {query}: {e}')
conn.sendSync("exit 0")
conn.close()
Run Code Online (Sandbox Code Playgroud) qpython ×12
python ×9
kdb ×5
android ×4
sl4a ×4
qpython3 ×3
kivy ×2
python-3.x ×2
android-wifi ×1
asynchronous ×1
jython ×1
module ×1
pandas ×1
readline ×1
synchronous ×1
version ×1