小编xgo*_*ord的帖子

用于python脚本的shebang在pyenv virtualenv下运行

当一个python脚本应该从pyenv virtualenv文件的正确shebang 运行?

作为示例测试用例,我的系统(OSX)上的默认python尚未pandas安装.pyenv virtualenv venv_name确实如此.我尝试从virtualenv获取python可执行文件的路径.

$ pyenv activate venv_name
(venv_name)$ which python
/Users/username/.pyenv/shims/python
Run Code Online (Sandbox Code Playgroud)


所以我举了我的榜样script.py:

#!/Users/username/.pyenv/shims/python
import pandas as pd
print 'success'
Run Code Online (Sandbox Code Playgroud)


但是当我尝试运行脚本时,我收到了一个错误:

(venv_name) $ ./script.py
./script.py: line 2: import: command not found
./script.py: line 3: print: command not found
Run Code Online (Sandbox Code Playgroud)


虽然在命令行上运行该路径工作正常:

(venv_name) $ /Users/username/.pyenv/shims/python script.py
success

(venv_name) $ python script.py # also works
success
Run Code Online (Sandbox Code Playgroud)

什么是适当的shebang为此?理想情况下,我想要一些通用的东西,以便它指向我目前的venv所在的python.

python python-2.7 pyenv

37
推荐指数
3
解决办法
2万
查看次数

使用子类中的静态成员类参数化超类

有没有办法用子类的静态成员类参数化超类?

受挫的例子

ExampleSuperClass.java:

package foo;

public class ExampleSuperClass<T> {
    protected T field;

    public ExampleSuperClass(T field) {
        this.field = field;
    }

    public T getField() {
        return field;
    }
}
Run Code Online (Sandbox Code Playgroud)

ExampleSubClass.java:

package foo;

public class ExampleSubClass extends ExampleSuperClass<Member> {

    static class Member {

    }

    public ExampleSubClass() {
        super(new Member());
    }
}
Run Code Online (Sandbox Code Playgroud)

编译失败ExampleSubClass.java,错误:

[javac] ExampleSubClass.java:3: error: cannot find symbol
[javac] public class ExampleSubClass extends ExampleSuperClass<Member> {
[javac]                                                        ^
[javac]   symbol: class Member
[javac] 1 error
Run Code Online (Sandbox Code Playgroud)

或者在Eclipse中:

成员无法解析为某种类型

在Eclipse中,super …

java generics

10
推荐指数
2
解决办法
348
查看次数

argparse - 可选参数需要2个值或none

我正在尝试为一个脚本创建一个可选参数,该脚本可以不采用任何值或2个值,而不是其他任何值.你能用argparse做到这一点吗?

# desired output:
# ./script.py -a --> works
# ./script.py -a val1 --> error
# ./script.py -a val1 val2 --> works
Run Code Online (Sandbox Code Playgroud)


版本1 - 接受0或1值:

parser = argparse.ArgumentParser()
parser.add_argument("-a", "--action", nargs="?", const=True, action="store", help="do some action")
args = parser.parse_args()

# output:
# ./script.py -a --> works
# ./script.py -a val1 --> works
# ./script.py -a val1 val2 --> error
Run Code Online (Sandbox Code Playgroud)


版本2 - 正好接受2个值:

parser = argparse.ArgumentParser()
parser.add_argument("-a", "--action", nargs=2, action="store", help="do some action")
args = parser.parse_args()

# output:
# ./script.py -a …
Run Code Online (Sandbox Code Playgroud)

python argparse

9
推荐指数
1
解决办法
8313
查看次数

iOS 9 Beta 3无法信任Enterprise Developer Apps

iOS 9 Beta 3今天更新到了,我需要在手机上测试一个IPA文件.

我把它打开了,它说我需要先信任开发人员才能打开应用程序.我去了Settings > General > Profiles,这样做的选择并不像它那样存在iOS Beta 2.其他人有这个问题和解决方案吗?

iphone ios ios9

9
推荐指数
2
解决办法
4718
查看次数

对象列表python

我试图打印一个包含列表作为属性的python对象列表,我有一些意想不到的结果:

这是我的代码:

class video(object):

    name = ''
    url = ''

class topic(object):

    topicName = ''
    listOfVideo = []

    def addVideo(self,videoToAdd):
        self.listOfVideo.append(videoToAdd)

    def getTopic(self):
        return self.topicName

    def getListOfVideo(self):
        return self.listOfVideo


topic1 = topic()
topic1.topicName = 'topic1'
video1 = video()
video1.name = 'VideoName1'
video1.url = 'VideoURL1'

video2 = video()
video2.name = 'VideoName2'
video2.url = 'VideoURL2'
topic1.addVideo(video1)
topic1.addVideo(video2)

topic2 = topic()
topic2.topicName = 'topic2'

video3 = video()
video3.name = 'VideoName3'
video3.url = 'VideoURL3'

video4 = video()
video4.name = 'VideoName4'
video4.url = 'VideoURL4'

topic2.addVideo(video3) …
Run Code Online (Sandbox Code Playgroud)

python python-object

9
推荐指数
1
解决办法
474
查看次数

len(arr)和arr.shape [0]之间的Numpy性能差距

我发现这len(arr)几乎快了两倍arr.shape[0],我想知道为什么.

我使用的是Python 3.5.2,Numpy 1.14.2,IPython 6.3.1

以下代码演示了这一点:

arr = np.random.randint(1, 11, size=(3, 4, 5))

%timeit len(arr)
# 62.6 ns ± 0.239 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)

%timeit arr.shape[0]
# 102 ns ± 0.163 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
Run Code Online (Sandbox Code Playgroud)

我还做了一些比较测试:

class Foo():
    def __init__(self):
        self.shape = (3, 4, 5)        

foo = Foo()

%timeit arr.shape
# 75.6 ns ± 0.107 ns per loop …
Run Code Online (Sandbox Code Playgroud)

python arrays performance numpy micro-optimization

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

如何在 golang 中使用并行子测试处理父测试拆卸

概述

如果我有一个带有设置和拆卸逻辑的父测试,我如何在其中并行运行子测试而不会遇到拆卸逻辑的竞争条件?

func TestFoo(t *testing.T) {
    // setup logic
    t.Run("a", func(t *testing.T) {
        t.Parallel()
        // test code
    })
    // teardown logic
}
Run Code Online (Sandbox Code Playgroud)

例子

作为一个人为的例子:假设测试需要创建一个 tmp 文件,该文件将被所有子测试使用,并在测试结束时将其删除。

例如,父测试也调用t.Parallel(),因为这是我最终想要的。但是我的问题和下面的输出是一样的,即使父级没有调用t.Parallel().

顺序分测验

如果我按顺序运行子测试,它们通过没有问题:

package main

import (
    "fmt"
    "io/ioutil"
    "os"
    "testing"
)

func setup(t *testing.T) (tmpFile string) {
    f, err := ioutil.TempFile("/tmp", "subtests")
    if err != nil {
        t.Fatalf("could not setup tmp file: %+v", err)
    }
    f.Close()
    return f.Name()
}

var ncase = 2

func TestSeqSubtest(t *testing.T) {
    t.Parallel()

    // …
Run Code Online (Sandbox Code Playgroud)

go

6
推荐指数
2
解决办法
1686
查看次数

使用ofstream打开文件时设置文件权限

C++的标准库(或linux sys/stat.h,sys/types.h,sys/....库)中是否有一种方法可以在创建文件时使用ofstream(或使用其他文件)设置文件的文件权限库)?

当我创建一个文件时,它只是创建了一些默认的文件权限(我假设当前umask是什么),但我想明确地将权限设置为默认值以外的东西(例如600),我不能只是在启动程序之前设置umask(b/c其他人将运行它).

// Example of creating a file by writing to it
ofstream fp(filename.c_str())

/* write something to it */
Run Code Online (Sandbox Code Playgroud)

有没有办法在C++中执行此操作,如果没有,是否umask可以在C++程序中设置?

例如,在C的标准库中,您可以这样做:

open(filename, O_RDWR|O_CREAT, 0666)
Run Code Online (Sandbox Code Playgroud)

但我不想使用C函数,因为能够使用与fstream对象相关的函数会很好.

(旁注:有一个问题,其标题正是我所寻找的,但事实证明它是无关的.)

c++ linux file-permissions fstream

5
推荐指数
2
解决办法
6615
查看次数

TypeError:write()参数1必须是unicode,而不是str

我正在尝试导入文本文件并将其保存在桌面上,但是文本位于“ utf-8”中(书中有此信息),因此,当我保存而不进行编码时,会有很多奇怪的字符,但是当我尝试使用显式编码保存此错误出现:

Traceback (most recent call last):

File "C:/Users/Unidas/Semestre/ABC/8.1.py", line 14, in n_palabras

libro.write(archivo.read())

TypeError: write() argument 1 must be unicode, not str
Run Code Online (Sandbox Code Playgroud)

代码:

def n_palabras(x):
    import urllib2
    import io
    import string

    archivo = urllib2.urlopen(x)
    libro = io.open("alice.txt", "w", encoding="utf8")
    libro.write(archivo.read())
    libro.close()
Run Code Online (Sandbox Code Playgroud)

如何使用utf-8编码保存此文件?我在Python 2.7中使用Pycharm

python urllib2 python-2.7 python-unicode

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

通过字符串导入从模块导入*

我知道我可以用来importlib通过字符串导入模块.如何import *使用此库重新创建功能?基本上,我想要这样的东西:

importlib.import_module('path.to.module', '*')
Run Code Online (Sandbox Code Playgroud)

我没有对导入的属性进行名称间隔的原因是故意的.

python

3
推荐指数
2
解决办法
750
查看次数