我看过一个关于 python 中循环速度的视频,其中解释说,这样做sum(range(N))比手动循环并将变量添加在一起要快得多range,因为前者由于使用了内置函数而在 C 中运行,而在后者中求和是在(慢)Python 中完成的。numpy我很好奇添加到混合物中会发生什么。正如我预期的那样np.sum(np.arange(N)),它是最快的,但sum(np.arange(N))比np.sum(range(N))执行简单的 for 循环还要慢。
为什么是这样?
这是我用来测试的脚本,一些关于我所知道的缓慢原因的评论(主要来自视频)以及我在我的机器上得到的结果(python 3.10.0,numpy 1.21.2):
更新的脚本:
import numpy as np
from timeit import timeit
N = 10_000_000
repetition = 10
def sum0(N = N):
s = 0
i = 0
while i < N: # condition is checked in python
s += i
i += 1 # both additions are done in python
return s
def sum1(N = N): …Run Code Online (Sandbox Code Playgroud) 我正在使用python3.5并且我希望将我得到的十六进制字节(b'\x00'等b'\x01')输出写入Python字符串,并且\x00 -> 0 我\x01 -> 1有这种感觉它可以轻松地以非常Pythonic的方式完成,但是半个小时的谷歌搜索仍然让我思考最简单的方法是手工制作一本带有映射的字典(我实际上只需要从 0 到 7)。
Input Intended output
b'\x00' 0 or '0'
b'\x01' 1 or '1'
Run Code Online (Sandbox Code Playgroud)
ETC。
我主要使用笔记本,所以在命令行上,我通常只想为我拥有的特定 python 版本安装特定的包。目前,我通常更改全局python版本,运行pip并将全局版本更改回来。有没有办法在特定pyenv版本中执行单个命令?
我有一个cronjob运行一个我添加了python脚本的脚本logging,但是由于它是日常工作,所以每天收到有关其功能的电子邮件确实很烦人,但是我似乎找不到设置,这会使它仅记录日志进入日志文件。
#!/usr/bin/python
import logging, logging.handlers
LOGFILENAME = "log.log"
logging.basicConfig()
log = logging.getLogger("nameoflog")
log.setLevel(logging.DEBUG)
handler = logging.handlers.WatchedFileHandler(LOGFILENAME)
handler.setLevel(logging.DEBUG)
handler.setFormatter(logging.Formatter("%(asctime)-15s %(levelname)-8s %(name)s %(message)s"))
log.addHandler(handler)
log.info("something happening")
Run Code Online (Sandbox Code Playgroud)
如何logging仅写入文件而不写入文件and STDOUT?
我正在尝试构建,blender以便我可以直接从python使用它并且正在完成本教程并且我被困在第一个make命令给我
CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:108 (message):
Could NOT find PythonLibsUnix (missing: PYTHON_LIBRARY PYTHON_LIBPATH
PYTHON_INCLUDE_DIR PYTHON_INCLUDE_CONFIG_DIR)
Run Code Online (Sandbox Code Playgroud)
我正在使用Ubuntu 14.04,系统安装python(3.4.3和2.7.6).我应该手动指定这些环境变量(如果是这样的话)?或者它是另一回事?如果是前者,这些的标准路径是什么?
我开始看,pipenv好像还不错。我唯一担心的是,我的大多数项目都涉及numpy,scipy以及其他一些不那么小的库。
目前的方式来管理我的项目:
我有pyenv和pyenv-virtualenv安装。我有几个(目前4)具体的virtualenvs每一个迎合型项目。项目本身已经.pyenv-version设置,我pyenv启用了自动加载 virtualenv 功能。如果我需要共享一个项目,我产生一个requirements.txt与pip freeze -l从virtualenv。
所以在我的当前设置,我X的项目数和Y, Y << X数量virtualenvs,所有金额为几GB的硬盘空间。请注意,由于像numpy每个库这样的大型库virtualenvs都非常大,大约 700-900 MB。
我的问题:
据我了解,pipenv默认情况下会为我virtualenv的所有项目创建一个,因此我占用的硬盘空间virtualenvs会大大增加。我感兴趣的是:
pipenv跨多个使用完全相同依赖项的项目共享环境?即pipenv加载相同的多个配置virtualenv?pipenv从virtualenv我设置的配置文件中生成配置文件pyenv?即我不会pipenv用来实际运行我的项目,我不会创建任何virtualenvswith pipenv,但我会创建pipenv用于共享项目的配置文件(在这种情况下,可能也与 a …我正在使用 Docker 容器来玩一些硬件。其中一些特别需要一个/dev/tty[something].
我知道我总是可以这样做docker run --device=/dev/tty[something],但这不是很灵活,因为特定设备可能在启动时未插入。
我读到,--privileged --volume="/dev/bus/usb:/dev/bus/usb:rw"如果我想访问 USB,我可以这样做,但事实证明他们特别需要/dev/tty[]. 我能做的就是--privileged --volume="/dev:/dev:rw"让一切都可用吗?这会导致主机或容器出现任何问题吗?
编辑:
我正在寻找一种可以在容器中插入和播放任何 USB 设备的方法。
其中R有一个函数 ( ggplotly),可将ggplot2绘图转换为plotly图形。在python您必须plotnine使用ggplot,但是否有类似的转换器ggplotly?
有一个类似的问题,但询问的是旧的(我认为已弃用的)python 库,因此我认为我的问题是相关的。
我有一个来自我的大学的域名,我在那里运行着一项服务:
server {
listen 443 default_server ssl;
server_name example.uni.com;
keepalive_timeout 70;
ssl_certificate xxx.crt;
ssl_certificate_key xxx.key;
location / {
proxy_pass http://localhost:8081;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Run Code Online (Sandbox Code Playgroud)
我想要实现的目标是指向example.uni.com/specificaddress在不同本地主机端口上运行的不同服务,而不必修改在 8081 上运行的服务(更好的是specificaddress.example.uni.com,但我相信我自己无法做到这一点)。这怎么可能呢?不幸的是,简单地创建另一个服务器并server_name设置为example.uni.com/specificaddress不起作用(这不是一个大惊喜,它是由运行在 8081 上的服务处理的)。
python ×5
pyenv ×2
binary ×1
blender ×1
compilation ×1
docker ×1
ggplot2 ×1
ggplotly ×1
hex ×1
logging ×1
nginx ×1
numpy ×1
performance ×1
pipenv ×1
plotly ×1
plotnine ×1
python-3.x ×1
usb ×1
virtualenv ×1