当一个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.
有没有办法用子类的静态成员类参数化超类?
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,错误:
Run Code Online (Sandbox Code Playgroud)[javac] ExampleSubClass.java:3: error: cannot find symbol [javac] public class ExampleSubClass extends ExampleSuperClass<Member> { [javac] ^ [javac] symbol: class Member [javac] 1 error
或者在Eclipse中:
成员无法解析为某种类型
在Eclipse中,super …
我正在尝试为一个脚本创建一个可选参数,该脚本可以不采用任何值或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) 我iOS 9 Beta 3今天更新到了,我需要在手机上测试一个IPA文件.
我把它打开了,它说我需要先信任开发人员才能打开应用程序.我去了Settings > General > Profiles,这样做的选择并不像它那样存在iOS Beta 2.其他人有这个问题和解决方案吗?
我试图打印一个包含列表作为属性的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) 我发现这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) 如果我有一个带有设置和拆卸逻辑的父测试,我如何在其中并行运行子测试而不会遇到拆卸逻辑的竞争条件?
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) 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对象相关的函数会很好.
(旁注:有一个问题,其标题正是我所寻找的,但事实证明它是无关的.)
我正在尝试导入文本文件并将其保存在桌面上,但是文本位于“ utf-8”中(书中有此信息),因此,当我保存而不进行编码时,会有很多奇怪的字符,但是当我尝试使用显式编码保存此错误出现:
Run Code Online (Sandbox Code Playgroud)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
代码:
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
我知道我可以用来importlib通过字符串导入模块.如何import *使用此库重新创建功能?基本上,我想要这样的东西:
importlib.import_module('path.to.module', '*')
Run Code Online (Sandbox Code Playgroud)
我没有对导入的属性进行名称间隔的原因是故意的.