小编Gre*_*ers的帖子

使用 Python virtualenv --system-site-packages 安装本地包

我知道这个话题已经被打败了,但我无法找到解决我在 SO 或其他地方遇到的问题的方法,所以我怀疑我的系统中的某个地方可能存在错误。

我在使用 Python 3.4 的较旧的 RHEL 6 平台上。我正在开发一个将在使用 Qt 的平台上运行的应用程序。我已经通过yum(例如qt-develpyqt4-devel等)安装了所有相关的库,现在想使用pip install -e mypkg. 我也有几个依赖项要求没有打开yum,必须通过pip.

我想要做的是创建一个 virtualenv,它“继承”通过安装的系统包,yum但允许我将pip install自己的包放入我的主目录中的 virtualenv 目录中。

从我的谷歌搜索来看,最好的方法是使用系统的站点包目录创建一个虚拟环境:

$ python3 -m venv --system-site-packages ~/venv
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试将软件包安装到此 virtualenv 的 site-packages 目录时,它会尝试将其安装到该目录下,但/usr/lib出现Permission denied错误。

因此,该--system-site-packages选项似乎使我的 virtualenv 完全共享了我系统中的 site-packages 目录,而不是将其用作“基础”,其中可以在顶部分层放置更多的包。

这个答案指出 usingpip install -I应该做我想要的,但情况似乎并非如此:

(venv) $ pip3 install -I bitstring
...
error: could not create '/usr/lib/python3.4/site-packages/bitstring.py': …
Run Code Online (Sandbox Code Playgroud)

python pip virtualenv

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

Jersey:找不到 Media type=multipart/form-data 的 MessageBodyReader

我已经在 SO 上发现了一些这样的问题,但它们似乎都没有解决我的特定问题,而且我一直无法自己找到解决方案。

这是我得到的错误:

Caused by: org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyReader not found for media type=multipart/form-data; boundary=----WebKitFormBoundaryHWk1XUaeu7pEiDth, type=class org.glassfish.jersey.media.multipart.FormDataMultiPart, genericType=class org.glassfish.jersey.media.multipart.FormDataMultiPart.
Run Code Online (Sandbox Code Playgroud)

我通过一个 jQuery AJAX 请求发送这个,看起来像这样:

$('#upload-image-form').on('submit', function(e) {
    e.preventDefault();
    var data = new FormData(this);
    $.ajax({
        url: url,
        method: 'POST',
        contentType: false,
        processData: false,
        data: data,
    }).done(function(data) {
        console.log(data);
    }).fail(function(res, status) {
        onError(res, status, 'Image upload failed');
    });
});
Run Code Online (Sandbox Code Playgroud)

这是我的 Java 端点:

@POST
@Path("/{userId}")
@Consumes("multipart/form-data")
public Response createGraphic(
   @PathParam("userId") int userId,
   FormDataMultiPart multiPartFormData) { ... }
Run Code Online (Sandbox Code Playgroud)

我见过几个人有改变端点方法的参数使用@FormDataParam代替FormDataMultiPart(如图运气在这里),但我不能编辑Java类,所以它是如何上面我必须使用它。

我的 pom.xml 具有以下依赖项:

<dependency>
    <groupId>org.jvnet</groupId> …
Run Code Online (Sandbox Code Playgroud)

java jersey

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

移动带有文件描述符的对象

例如,我有一个类Foo,定义如下:

class Foo {
public:
  Foo(int i) {
    valid = false;
    char devname[] = "/dev/device0";
    sprintf(devname, "/dev/device%d", i);
    fd = open(devname, O_RDWR);
    if (fd > 0) {
      valid = true;
    }

  ~Foo() {
    if (valid) {
      close(fd);
    }
  }

  bool valid;
private:
  int fd;
};
Run Code Online (Sandbox Code Playgroud)

我有另一个类,比如Bar,定义如下:

class Bar {
public:
  Bar() {
    for (int i = 0; i < 4; i++) {
      Foo foo(i);
      if (foo.valid) {
        vector_of_foos.push_back(foo);
      }
    }
  }

  std::vector<Foo> vector_of_foos;
};
Run Code Online (Sandbox Code Playgroud)

这样做的问题是push_back …

c++

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

Python:将一个字符串'keys'列表为int

我搜索了一会儿,但没有找到任何解释我正在尝试做什么的东西.

基本上我有一个字符串"标签"列表,例如["棕色","黑色","蓝色","棕色","棕色","黑色"]等.我想要做的是将其转换为列表每个标签对应一个整数的整数,所以

["brown", "black", "blue", "brown", "brown", "black"]
Run Code Online (Sandbox Code Playgroud)

[1, 2, 3, 1, 1, 2]
Run Code Online (Sandbox Code Playgroud)

我查看了枚举函数,但是当我给它我的字符串列表(这很长)时,它为每个单独的标签分配了一个int,而不是给同一个标签提供相同的int:

[(1,"brown"),(2,"black"),(3,"blue"),(4,"brown"),(5,"brown"),(6,"black")]
Run Code Online (Sandbox Code Playgroud)

我知道如何用一个冗长而繁琐的for循环和if-else检查来做到这一点,但我真的很好奇,如果只有一两行就有更优雅的方式来做这件事.

python string int enumerate

4
推荐指数
1
解决办法
3363
查看次数

标签 统计

python ×2

c++ ×1

enumerate ×1

int ×1

java ×1

jersey ×1

pip ×1

string ×1

virtualenv ×1