建立:
我的Python脚本"lights.py"非常酷,因为它通过连接到Arduino Uno [然后通过USB连接到Pi]的继电器打开/关闭我客厅的灯光.我知道我可以使用Pi的GPIO引脚,但我没有.无论如何,这无关紧要.
我希望能够通过我的Pi托管的网站从Web浏览器激活脚本,所以我的/var/wwww/test/lights.php包含以下代码:
<?php
exec('python lights.py');
?>
Run Code Online (Sandbox Code Playgroud)
简单,不是吗?好吧,当我在浏览器中浏览该页面时,没有任何显示(预期),但灯光不会改变状态(意外). 但是,在命令行,以用户Pi身份登录,我可以运行"php /var/wwww/test/lights.php",它运行正常!
我想这是因为nginx似乎使用这个名为www-data的用户来做东西,所以也许它的权限问题呢?现在我正在为我徘徊在未知领域...我尝试了"su - www-data",看看我是否可以尝试使用该用户的脚本,但它要求输入密码,我从未设置过(并且空白密码不起作用).
非常感谢任何帮助.
更新 - 这是"ls -la/var/www/test/lights*"
-rw-r--r-- 1 www-data root 37 Feb 1 23:56 /var/www/test/lights.php
-rwxr-xr-x 1 www-data root 129 Feb 1 23:51 /var/www/test/lights.py
Run Code Online (Sandbox Code Playgroud)
第二次更新 - 检查:
pi@raspberrypi ~ $ sudo su - www-data
$ pwd
/var/www
$ php ./test/lights.php
python: can't open file 'lights.py': [Errno 2] No such file or directory
$ python ./test/lights.py
Traceback (most recent call last):
File …Run Code Online (Sandbox Code Playgroud) 我正在尝试将旧手机变成联网的安全摄像头,因为在所有这些骚乱期间,我所在地区的犯罪率急剧增加(而且我不想依赖其他人的应用程序来控制对我私人时刻的访问)。
我正在分块发送,所以摄像机会记录视频几秒钟,然后停止,将捕获的文件的二进制文件编码为 Base64,然后通过 POST 请求将其发送到家庭服务器,所有这些都是无限循环的。服务器解包 + 解码 + 将其作为原始二进制“MP4”保存到自己的磁盘上(TODO:运动检测的有趣后处理)。
在(和周围)我的目标手机的操作系统版本和屏幕尺寸上使用各种虚拟设备,这一切都可以长时间工作。我已经使用 60 秒的块超过 15 分钟,加上 6 秒的块超过一个小时。我一直收到模拟器在我的服务器上生成的愚蠢的虚拟房间视频。
但是在运行 Android 6.0.1 并梦想成为安全摄像头的三星 Galaxy S5 上,通常需要发送 2 到 3 个视频,然后应用程序才会崩溃……除非您将分辨率设置得太高,然后您会遇到不同的症状。
E/Parcel:dup() 在 Parcel::read 中失败,i 为 1,fds[i] 为 -1,fd_count 为 2,错误:打开的文件太多
E/Surface:dequeueBuffer:IGraphicBufferProducer::requestBuffer 失败:-22
W/Adreno-EGLSUB: DequeueBuffer:721: dequeue native buffer failure: Invalid argument, buffer=0x0, handle=0x0
W/Adreno-EGL: <qeglDrvAPI_eglSwapBuffers:3800>: EGL_BAD_SURFACE
紧随其后的是第二个错误:
E/CameraDeviceGLThread-1:在 GL 渲染线程上收到异常:
Run Code Online (Sandbox Code Playgroud)java.lang.IllegalStateException: swapBuffers: EGL error: 0x300d
最后,一旦块时间到了,相机再次开始录制,就会发生最终错误,使整个应用程序崩溃:
I/CameraDeviceState:传统相机服务转换到状态 ERROR
E/AndroidRuntime:致命异常:CameraThread
Run Code Online (Sandbox Code Playgroud)Process: com.example.roselawncam, PID: 14639android.hardware.camera2.CameraAccessException: 相机设备遇到严重错误
这些警告清楚地表明资源紧张会导致此症状。它们发生在应用程序崩溃时,更高的分辨率会导致更快的崩溃。我给这些坏男孩计时:
我想利用 Tokio 的运行时来处理可变数量的异步 future。由于 futures 的数量在编译时是未知的,似乎FuturesUnordered是我最好的选择(宏,例如select!需要在编译时指定您的分支;join_all可能是可能的,但文档建议“在很多情况下”当 order 不可用时使用 FuturesUnordered )没关系)。
这段代码的逻辑是一个recv()循环被推送到futures桶中,它应该始终运行。当新数据到达时,它的解析/处理也被推送到 futures 桶(而不是立即处理)。这确保接收器在响应新事件时保持低延迟,并且数据处理(可能需要大量计算的解密)与所有其他数据处理异步块(加上侦听接收器)同时发生。
.boxed()顺便说一句,这个帖子解释了为什么期货会变得。
问题是这个神秘的错误:
错误[E0277] :`dyn futures::Future<Output = ()> + std::marker::Send` 无法在线程之间安全共享
--> src/main.rs:27:8
|
27 | 27 }).boxed());
| ^^^^^ `dyn futures::Future<Output = ()> + std::marker::Send` 无法在线程之间安全共享
|
= help : `dyn futures::Future<Output = ()> + std::marker::Send` 未实现 `Sync` 特性
=注意:需要,因为 `Sync` 的 impl 要求Unique<dyn futures::Future<Output = ()> + std::marker::Send>`
= note:必需的,因为它出现在类型 `Box<dyn futures::Future<Output = ()> … 我有一个Python脚本,每5秒查询一次MySQL数据库,收集帮助台票证的最新三个ID.我使用MySQLdb作为我的驱动程序.但问题是在我的"while"循环中,当我检查两个数组是否相等时.如果它们不相等,我会打印出"新票已到达".但这永远不会打印!看我的代码:
import MySQLdb
import time
# Connect
db = MySQLdb.connect(host="MySQL.example.com", user="example", passwd="example", db="helpdesk_db", port=4040)
cursor = db.cursor()
IDarray = ([0,0,0])
IDarray_prev = ([0,0,0])
cursor.execute("SELECT id FROM Tickets ORDER BY id DESC limit 3;")
numrows = int(cursor.rowcount)
for x in range(0,numrows):
row = cursor.fetchone()
for num in row:
IDarray_prev[x] = int(num)
cursor.close()
db.commit()
while 1:
cursor = db.cursor()
cursor.execute("SELECT id FROM Tickets ORDER BY id DESC limit 3;")
numrows = int(cursor.rowcount)
for x in range(0,numrows):
row = cursor.fetchone()
for num in …Run Code Online (Sandbox Code Playgroud) 我需要获得这个Perl代码中使用的算法,但我对Perl一无所知.通常这不是问题,因为我会研究这种语言,但这种正则表达式的东西已经超出我的想象!
任何人都可以伪代码吗?我只需要知道发生了什么,所以我可以用其他东西来实现它,最好是PHP甚至是C++,但我会担心那部分.我只需要以某种方式破译这是做什么的:
$a = $ARGV[0];
$a =~ s/[^A-F0-9]+//simg;
@b = reverse split /(\S{2})/,$a;
$c = join "", @b;
$c .= "0000";
$d = hex($c) % 999999929;
print "$d\n";
Run Code Online (Sandbox Code Playgroud) 我刚刚建立了一个新的Ubuntu 12.04 LTS 64位服务器,为它附带的Apache选择任何软件包.我正在尝试在浏览器中打开此index.html文件:
<html><body><h1>Testing Database</h1>
<?php
$con=mysql_connect("localhost","****","****");
if(!$con) {die('Could not connect: ' . mysql_error());
mysql_select_db("Test", $con);
$result=mysql_query("SELECT * FROM main");
while($row=mysql_fetch_array($result))
{
echo $row['id'] . " " . $row['name'];
echo "<br />";
}
mysql_close($con);
?>
</body></html>
Run Code Online (Sandbox Code Playgroud)
我在MySQL中创建了一个数据库和表.我制作了一个运行得很<?php phpinfo(); ?>好的phpinfo.php文件(含).但由于某种原因,Internet Explorer只显示标题[测试数据库],Chrome只显示标题,加上:
"; } mysql_close($con); ?>
Run Code Online (Sandbox Code Playgroud)
我在这里关注教程,我的设置有问题吗?我觉得我在这一小块代码中缺少某种括号,但找不到它.
在Python中,我正在尝试打开一个保存到%TEMP%目录的文件.我试过了:
file = open("%TEMP%\file.txt")
Run Code Online (Sandbox Code Playgroud)
和
file = open("%%TEMP%%\file.txt")
Run Code Online (Sandbox Code Playgroud)
和
file = open("%TEMP%\\file.txt")
Run Code Online (Sandbox Code Playgroud)
和
file = open("%%TEMP%%\\file.txt")
Run Code Online (Sandbox Code Playgroud)
总是得到(这个专门用于最后一个例子):
IOError: [Errno 2] No such file or directory: '%%TEMP%%\\file.txt'
Run Code Online (Sandbox Code Playgroud)
为了理智,从Windows命令提示符我做了一个type %TEMP%\file.txt,它打印出文件确定.有帮助吗?
php ×2
python ×2
android ×1
apache ×1
async-await ×1
file ×1
kotlin ×1
logic ×1
mysql ×1
nginx ×1
perl ×1
raspberry-pi ×1
rust ×1
rust-tokio ×1
ubuntu ×1
while-loop ×1
windows ×1