permissions - colab中的权限被拒绝
问题描述
我想在我的 colab 笔记本中使用 stockfish。我首先尝试了该chess.engine.SimpleEngine.popen_uci()
命令,该命令似乎已过时,因为module 'chess.engine' has no attribute 'SimpleEngine'
所以我尝试了鱼本身:
from stockfish import Stockfish
stockfish = Stockfish('/usr/local/lib/python3.7/dist-packages/stockfish')
在这里我总是得到错误:
权限被拒绝:'/usr/local/lib/python3.7/dist-packages/stockfish'
我用谷歌搜索它并想出了一些好的尝试:
我尝试使用!chmod +x '/usr/local/lib/python3.7/dist-packages/stockfish'
which 编译,但没有解决问题,并且!chmod +x 'stockfish'
, 没有找到文件夹。
那么我究竟如何授予使用stockfish文件夹的权限呢?
解决方案
您需要将os.setuid设置为 0,如下面的代码:
! wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-linux-x86_64.tar.gz -q
! tar -xzf elasticsearch-7.9.2-linux-x86_64.tar.gz
! chown -R daemon:daemon elasticsearch-7.9.2
import os
from subprocess import Popen, PIPE, STDOUT
es_server = Popen(['elasticsearch-7.9.2/bin/elasticsearch'],
stdout=PIPE, stderr=STDOUT,
preexec_fn=lambda: os.setuid(0) # as daemon
)
# wait until ES has started
! sleep 30
推荐阅读
- mongodb - Kubernetes MongoDB 自动缩放
- excel - 如何判断是一个月的第一天还是第二天?
- javascript - 如何在另一种方法中检索一些变量
- java - 在 Java VisualVM 中安装 Visual GC 后出现 java.lang.NoClassDefFoundError
- android - 更改 Android Emulator 麦克风的默认设置
- angular - 如何在 e2e 测试量角器中设置 sessionStorage 的变量 user 和 jeton?
- angular - 如何将路由器数据从子子路由到父路由 angular 6+?
- java - 我的一种方法使用在另一种方法中返回的变量。我无法获得第二种打印或计算方法
- java - 在 int 数组中,如何返回对应于最小值的索引?
- python - 替换功能无法按我的需要工作,Pandas Dataframe