Python3测试用例(doctests)失败了我的示例代码.但同样在Python2中运行良好.
test.py
class Test(object):
def __init__(self, a=0):
self.a = a
def __getattr__(self, attr):
return Test(a=str(self.a) + attr)
Run Code Online (Sandbox Code Playgroud)
tst.py
from test import Test
t = Test()
Run Code Online (Sandbox Code Playgroud)
运行测试用例: python3 -m doctest -v tst.py
错误:
Traceback (most recent call last):
File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/usr/lib/python3.6/doctest.py", line 2787, in <module>
sys.exit(_test())
File "/usr/lib/python3.6/doctest.py", line 2777, in _test
failures, _ = testmod(m, verbose=verbose, optionflags=options)
File "/usr/lib/python3.6/doctest.py", line 1950, in testmod
for test …Run Code Online (Sandbox Code Playgroud) 我正在对两个矩阵进行 numpy 点积(假设 a 和 b 是两个矩阵)。
当 a 的形状为 (10000, 10000) 且 b 的形状为 (1, 10000) 时,numpy.dot(a, bT) 正在使用所有 CPU 核心。
但是,当 a 的形状为 (10000, 10000) 且 b 的形状为 (2, 10000) 时,numpy.dot(a, bT) 不会使用所有 CPU 核心(仅使用一个)。
当 b 的行大小从 2 到 15(即从 (2, 10000) 到 (15, 10000))时,就会发生这种情况。
例子:
import numpy as np
a = np.random.rand(10**4, 10**4)
def dot(a, b_row_size):
b = np.random.rand(b_row_size, 10**4)
for i in range(10):
# dot operation
x = np.dot(a, b.T)
# Using all CPU cores …Run Code Online (Sandbox Code Playgroud) 我已经构建了一个安装 kwikapi==0.4.5 和 requests==2.22.0 的 python 模块。但是 kwikapi 有 requests==2.18.4。
现在,当我安装并运行我的包时,出现错误pkg_resources.ContextualVersionConflict: (requests 2.22.0 (/tmp/test_vir3.7/lib/python3.7/site-packages), Requirement.parse('requests==2.18.4'), {'kwikapi'})。
现在,如果我安装 requests==2.18.4(pip install requests==2.18.4) 并运行,那么错误是pkg_resources.DistributionNotFound: The 'requests==2.22.0' distribution was not found and is required by my-pack.
我可以使用 2.18.4 而不是 2.22.0 请求来解决这个问题。但是如果我在请求和 kwikapi 中都有不同版本的相同模块,这个问题就会再次出现。
有没有办法忽略/解决这个错误?
设置/重现
Module structure
.
??? my_pack
? ??? __init__.py
??? setup.py
Run Code Online (Sandbox Code Playgroud)
setup.py
.
??? my_pack
? ??? __init__.py
??? setup.py
Run Code Online (Sandbox Code Playgroud)
__init__.py
from setuptools import setup, find_packages
version = "0.0.1"
setup(
name="my_pack",
packages=find_packages("."),
package_dir={"my_pack": "my_pack"},
include_package_data=True,
install_requires=[ …Run Code Online (Sandbox Code Playgroud) 我的主要目标是在公开端口并在docker swarm中进行堆栈部署时使Nginx服务仅在一台机器上可用(通常,我们可以从docker swarm集群中的任何机器上访问公开的服务)。为此,我看到了 mode: host选择。
但是当我在docker compose文件中使用它并进行堆栈部署时,我得到了错误service nginx: Unknown mode: host。
nginx.yml文件
version: "3.4"
services:
nginx:
image: ramidavalapati/nginx:tag1
deploy:
mode: host
restart_policy:
condition: on-failure
placement:
constraints: [node.hostname == ram-ThinkPad-E470]
ports:
- 80:80
- 443:443
volumes:
- /home/ram/nginxDocker/nginx.conf:/etc/nginx/nginx.conf
- /home/ram/nginxDocker/logs/access.log:/var/log/nginx/access.log
- /home/ram/nginxDocker/logs/error.log:/var/log/nginx/error.log
networks:
- all
command: ["nginx", '-g', 'daemon off;']
networks:
all:
external: true
Run Code Online (Sandbox Code Playgroud)
部署:
$ sudo docker stack deploy -c nginx.yml nginx
我有一个示例C程序用于添加.当我使用GCC编译并运行它时,它只使用一个CPU内核.
有没有办法编译C程序,以便它可以使用Linux中的所有CPU核心.
我曾经编译过像 gcc -O3 malloc.c
码:
#include <stdio.h>
#include <time.h>
#include <malloc.h>
int main() {
float *ptr;
unsigned long long i;
ptr = (float*) malloc(8000000000 * sizeof(float));
for(i=0; i<8000000000; i++) {
ptr[i] = i/10000;
}
clock_t tic = clock();
for(i=0; i<8000000000; i++) {
ptr[i] = (i/10000)+1.0;
}
clock_t toc = clock();
printf("Elapsed: %f seconds\n", (double)(toc - tic) / CLOCKS_PER_SEC);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我有一个加载 8 GB 数据的 Julia 程序。它在我的本地机器上运行良好。
但是当我在 docker 容器中尝试它时,它没有加载数据并给出总线错误。它可以很好地处理 docker 容器中 20 MB 的小数据。
Dockerfile
FROM ubuntu:16.04
WORKDIR /julia
RUN apt-get -y update
RUN apt-get -y install unzip
RUN apt-get -y install cmake
RUN apt-get -y install clang
RUN apt-get -y install wget
RUN cd /tmp/
RUN wget "https://julialang.s3.amazonaws.com/bin/linux/x64/0.5/julia-0.5.0-linux-x86_64.tar.gz"
RUN tar -xzvf julia-0.5.0-linux-x86_64.tar.gz
RUN mv julia-3c9d75391c/ ~/julia
ENV PATH="/root/julia/bin:${PATH}"
RUN julia --eval 'Pkg.add("JSON")'
RUN julia --eval 'Pkg.add("HttpServer")'
RUN julia --eval 'Pkg.add("URIParser")'
RUN julia --eval 'Pkg.clone("https://github.com/deep-compute/AdaGram.jl.git")'
RUN julia --eval 'Pkg.build("AdaGram")'
CMD …Run Code Online (Sandbox Code Playgroud) python ×3
c ×1
docker ×1
docker-swarm ×1
doctest ×1
gcc ×1
julia ×1
linux ×1
numpy ×1
openblas ×1
pip ×1
python-3.5 ×1
python-3.x ×1
virtualenv ×1