小编use*_*089的帖子

如何将docker-compose.yml翻译为Django的Dockerrun.aws.json

我按照https://docs.docker.com/compose/django/上的说明获取基本的dockerized django应用程序.我可以在本地运行它而没有问题,但我无法使用Elastic Beanstalk将其部署到AWS.在这里阅读之后,我想我需要将docker-compose.yml翻译成Dockerrun.aws.json才能工作.

原始的docker-compose.yml是

version: '2'
services:
  db:
    image: postgres
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止翻译的内容

{
  "AWSEBDockerrunVersion": 2,
  "volumes": [
    {
      "name": "db"
    },
    {
      "name": "web"
    }
  ],
  "containerDefinitions": [
    {
      "name": "db",
      "image": "postgres",
      "essential": true,
      "memory": 256,
      "mountPoints": [
        {
          "sourceVolume": "db"
          "containerPath": "/var/app/current/db"
        }
      ]
    },
    {
      "name": "web",
      "image": "web",
      "essential": true,
      "memory": 256,
      "mountPoints": [
        {
          "sourceVolume": …
Run Code Online (Sandbox Code Playgroud)

django amazon-ecs docker amazon-elastic-beanstalk docker-compose

18
推荐指数
1
解决办法
8568
查看次数

使用cudaMallocManaged时,为什么NVIDIA Pascal GPU在运行CUDA内核时会变慢

我正在测试新的CUDA 8以及Pascal Titan X GPU,并期待我的代码加速,但由于某种原因它最终会变慢.我在Ubuntu 16.04上.

以下是可以重现结果的最小代码:

CUDASample.cuh

class CUDASample{
 public:
  void AddOneToVector(std::vector<int> &in);
};
Run Code Online (Sandbox Code Playgroud)

CUDASample.cu

__global__ static void CUDAKernelAddOneToVector(int *data)
{
  const int x  = blockIdx.x * blockDim.x + threadIdx.x;
  const int y  = blockIdx.y * blockDim.y + threadIdx.y;
  const int mx = gridDim.x * blockDim.x;

  data[y * mx + x] = data[y * mx + x] + 1.0f;
}

void CUDASample::AddOneToVector(std::vector<int> &in){
  int *data;
  cudaMallocManaged(reinterpret_cast<void **>(&data),
                    in.size() * sizeof(int),
                    cudaMemAttachGlobal);

  for (std::size_t i = 0; i < in.size(); …
Run Code Online (Sandbox Code Playgroud)

c++ cuda gpgpu nvidia nvcc

10
推荐指数
1
解决办法
3344
查看次数

如何将C样式转换为在vim中转换为C++样式

我交出了一些遗留代码,首先我要改变

(int)a + b;
Run Code Online (Sandbox Code Playgroud)

static_cast<int>(a) + b;
Run Code Online (Sandbox Code Playgroud)

它们中有很多并且手动完成它们非常耗时.有没有办法使用vim来实现这一目标?

我试过类似的东西

:%s/\(int\).* /static_cast<int>(\2)/g
Run Code Online (Sandbox Code Playgroud)

但它不起作用.请指教.

c++ vim

8
推荐指数
1
解决办法
314
查看次数

如何在CMake for Visual Studio中获取当前配置(发布/调试)

我在Visual Studio 2013,CMake 3.5.1,Windows 10上.我试图通过CMake复制一些文件,如下所示:

file(COPY ${IMAGES} DESTINATION ${CMAKE_BINARY_DIR}/bin/Release)
Run Code Online (Sandbox Code Playgroud)

是否可以用表示配置的变量替换"Release",如:

file(COPY ${IMAGES} DESTINATION ${CMAKE_BINARY_DIR}/bin/${Variable})
Run Code Online (Sandbox Code Playgroud)

我试过了

file(COPY ${IMAGES} DESTINATION ${CMAKE_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE})
Run Code Online (Sandbox Code Playgroud)

但是当我使用消息将其打印出来时,CMAKE_BUILD_TYPE是一个空字符串,我也尝试过

file(COPY ${IMAGES} DESTINATION ${CMAKE_BINARY_DIR}/bin/$<CONFIGURATION>)
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,文件命令无法解密$<CONFIGURATION>而命令就像

add_custom_target(run COMMAND ${CMAKE_BINARY_DIR}/bin/$<CONFIGURATION>/Test.exe)
Run Code Online (Sandbox Code Playgroud)

能够.提取Visual Studio目前是否在CMake中的Release或Debug中构建的正确方法是什么?

c++ cmake visual-studio-2010 visual-studio visual-studio-2012

8
推荐指数
1
解决办法
7584
查看次数

如何在Visual Studio中禁用从父级继承的特定警告?

假设我正在处理w44101默认启用警告的大型代码库.这意味着如果我进入我的项目并右键单击属性 - > C/C++ - >命令行 - >会/w44101显示在其他选项部分中.

我希望能够通过更改配置而不是源代码来禁用此警告.我尝试进入属性 - > C/C++ - >所有选项 - >禁用特定警告并输入4101,这实际上产生了一个/wd"4101"属性 - > C/C++ - >命令行.但是,当我编译我的项目时,它仍会抛出4101警告.为什么不/wd"4101"/w44101互相抵消?

我在使用Visual Studio 2015的Windows 10上.禁用此警告的正确方法是什么?如果可以在CMake中使用某种类型的函数调用所提出的解决方案将是优选的,因为.sln该代码库的文件由CMake生成.

编辑:我正在处理的代码库默认情况下设置了严格的编译标志.它是用/W4和编译的/WX.还附加级别4的警告,仅举几个例子,例如,/w44101,/w44062,/w44191等.

c++ cmake compiler-warnings suppress-warnings visual-studio

8
推荐指数
1
解决办法
7926
查看次数

如何使用 setup.cfg 配置 setuptools 以包含平台名称、python 标签和 ABI 标签?

由于 setup.py install 的控制台消息已被弃用,我正在将现有的 setup.py install 升级到带有build的推荐 setup.cfg

我现有的 setup.py 看起来像

from setuptools import setup

setup(
    name='pybindsample',
    version='0.1.0',
    packages=[''],
    package_data={'': ['pybindsample.so']},
    has_ext_modules=lambda: True,
)
Run Code Online (Sandbox Code Playgroud)

我当前的翻译如下:

安装程序.cfg

[metadata]
name = pybindsample
version = 0.1.0

[options]
packages = . 

[options.package_data]
. = pybindsample.so
Run Code Online (Sandbox Code Playgroud)

pyproject.toml

[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
Run Code Online (Sandbox Code Playgroud)

我的问题是我该如何翻译has_ext_modules=lambda: Truehas_ext_modules=lambda: True来自这里的解决方案。如果没有这个,执行后python3 -m build --wheel生成的wheel的文件名将变成pybindsample-0.1.0-py3-none-any.whl,而我的旧版本python3 setup.py bdist_wheel将生成文件名为 的wheel pybindsample-0.1.0-cp39-cp39-macosx_11_0_x86_64.whl。我已经尝试过

安装程序.cfg

[metadata]
name = pybindsample …
Run Code Online (Sandbox Code Playgroud)

python setuptools

8
推荐指数
0
解决办法
662
查看次数

将Elastic Beanstalk与Django频道一起使用时出现Websocket错误

我正在尝试使用django渠道的聊天应用程序来使用负载均衡器在AWS Elastic Beanstalk上运行.

我基本上修改了https://github.com/jacobian/channels-example中的代码以使用Elastic Beanstalk.我可以使用该命令在本地成功运行它

python manage.py runserver
Run Code Online (Sandbox Code Playgroud)

问题是当我使用Elastic Beanstalk部署它时,我在启动聊天应用程序时收到以下错误

WebSocket connection to 'wss://mydomain.com/test/' failed: Error 
during WebSocket handshake: Unexpected response code: 200
Run Code Online (Sandbox Code Playgroud)

我尝试了在/sf/answers/2088220641/上提出的解决方案,但它只显示了不同的错误代码

WebSocket connection to 'wss://mydomain.com/test/websocket' failed: 
Error during WebSocket handshake: Unexpected response code: 404
Run Code Online (Sandbox Code Playgroud)

我还已将负载均衡器侦听器端口更改为TCP 80并获得SSL证书以将安全侦听器端口更改为SSL 443,但仍会收到相同的错误.

我还在AWS Elastic Beanstalk上阅读了带有socket.io的Websockets,但是没有为Django配置代理服务器的选项,我认为它默认使用Apache.

我对Elastic Beanstalk的配置缺少什么使它工作?

有没有办法改变这个,所以我们可以用asgi运行daphne服务器?

django websocket redis amazon-elastic-beanstalk django-channels

7
推荐指数
1
解决办法
711
查看次数

在CMake中使用静态库应用target_link_libraries的正确方法是什么

我正在构建一个链接到静态库的库.我正在尝试找出一种方法来传播包含而不是传播静态库的库,当我导出我正在构建的库的目标时.下面是静态库的示例CMakeLists

cmake_minimum_required(VERSION 3.7)
project(mystaticlib)

set(PROJECT_SRCS ${PROJECT_SOURCE_DIR}/src/mystatic.cpp)
set(PROJECT_INCS ${PROJECT_SOURCE_DIR}/include/mystatic.h)

add_library(${PROJECT_NAME} STATIC ${PROJECT_SRCS} ${PROJECT_INCS})

target_include_directories(${PROJECT_NAME} PUBLIC
        $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
        $<INSTALL_INTERFACE:${CMAKE_INSTALL_PREFIX}/include>)

export(TARGETS ${PROJECT_NAME}
      APPEND FILE ${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}Targets.cmake)
Run Code Online (Sandbox Code Playgroud)

非常标准,没什么特别的,现在这里是我链接到这个静态库的库的CMakeLists

cmake_minimum_required(VERSION 3.7)
project(testlib)

set(PROJECT_SRCS ${PROJECT_SOURCE_DIR}/src/mytest.cpp)
set(PROJECT_INCS ${PROJECT_SOURCE_DIR}/include/mytest.h)

add_library(${PROJECT_NAME} SHARED ${PROJECT_SRCS} ${PROJECT_INCS})

target_include_directories(${PROJECT_NAME} PUBLIC
    $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
    $<INSTALL_INTERFACE:${CMAKE_INSTALL_PREFIX}/include>)

target_link_libraries(${PROJECT_NAME} PRIVATE mystaticlib)

# target_link_libraries(${PROJECT_NAME} PUBLIC mystaticlib)

export(TARGETS ${PROJECT_NAME}
      APPEND FILE ${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}Targets.cmake)
Run Code Online (Sandbox Code Playgroud)

target_link_librarieswith 的问题PRIVATE是静态库中的include目录不会被导出.因此,外部用户链接到testlib它将无法找到静态库的标头所在的位置.

target_link_librarieswith 的问题PUBLIC是将静态库暴露给外部用户,这是不希望的.我只希望外部用户能够链接到testlib.

解决这个问题的正确方法是什么?

c++ cmake

6
推荐指数
0
解决办法
652
查看次数

如何在 CMake 中将命令附加到 add_custom_target

假设我在 CMake 中有一个用于单元测试的自定义目标,如下所示

 add_custom_target(
      test
      COMMAND ${CMAKE_CURRENT_BINARY_DIR}/ATest
      COMMAND ${CMAKE_CURRENT_BINARY_DIR}/BTest
      COMMAND ${CMAKE_CURRENT_BINARY_DIR}/CTest
      COMMAND ${CMAKE_CURRENT_BINARY_DIR}/DTest)
Run Code Online (Sandbox Code Playgroud)

但我想根据是否找到外部依赖项向目标添加额外的测试。目前,我用的是

if(EXTERNAL_FOUND)
  add_custom_target(
      test
      COMMAND ${CMAKE_CURRENT_BINARY_DIR}/ATest
      COMMAND ${CMAKE_CURRENT_BINARY_DIR}/BTest
      COMMAND ${CMAKE_CURRENT_BINARY_DIR}/CTest
      COMMAND ${CMAKE_CURRENT_BINARY_DIR}/DTest
      COMMAND ${CMAKE_CURRENT_BINARY_DIR}/ETest)
else()
  add_custom_target(
      test
      COMMAND ${CMAKE_CURRENT_BINARY_DIR}/ATest
      COMMAND ${CMAKE_CURRENT_BINARY_DIR}/BTest
      COMMAND ${CMAKE_CURRENT_BINARY_DIR}/CTest
      COMMAND ${CMAKE_CURRENT_BINARY_DIR}/DTest)
endif()
Run Code Online (Sandbox Code Playgroud)

这不是很优雅,当存在多种条件时,它很快就会变得难以管理。是否有类似附加到自定义目标的内容,以便我们可以编写以下内容?

add_custom_target(
      test
      COMMAND ${CMAKE_CURRENT_BINARY_DIR}/ATest
      COMMAND ${CMAKE_CURRENT_BINARY_DIR}/BTest
      COMMAND ${CMAKE_CURRENT_BINARY_DIR}/CTest
      COMMAND ${CMAKE_CURRENT_BINARY_DIR}/DTest)

if(EXTERNAL_FOUND)
  # I can't seem to find something like this
  append_custom_target(test COMMAND ${CMAKE_CURRENT_BINARY_DIR}/ETest)
else()
Run Code Online (Sandbox Code Playgroud)

或者有更好的方法来做到这一点吗?

cmake

6
推荐指数
1
解决办法
3452
查看次数

SLI如何确定哪个VBO属于OpenGL中的哪个GPU?

我的目标是在AFR模式下使用SLI来增加FPS.我的印象是NVIDIA SLI驱动程序会自动智能地将VBO分配给各个GPU.它是否正确?

我有一个代码,其中包含大量顶点/面,由VAO表示,具有三个不同的VBO(顶点,颜色,索引).使用双GPU和SLI不会增加fps.

我用相同的顶点/面复制VAO和VBO,并在两个VAO之间交替glDrawElements调用,希望NVIDIA SLI驱动程序能够聪明地知道一个VAO用于一个GPU,但遗憾的是仍然没有fps增加.有人能让我知道我做错了什么吗?

我还尝试为其中一个VAO注释掉一个glDrawElements调用,它确实显示了双FPS和闪烁的场景与实际场景和黑屏一样.

opengl fbo gpu frame-rate sli

5
推荐指数
1
解决办法
244
查看次数