我想在Qpython3上安装biopython,但它说我有python 3.2并且需要3.3或更高版本.是否有更高版本的QPython3版本?我可以以某种方式更新它吗?-谢谢
有人刚刚问我如何列出所有使用venv.
我只能想到搜索pyvenv.cfg文件来找到它们。就像是:
from pathlib import Path
venv_list = [str(p.parent) for p in Path.home().rglob('pyvenv.cfg')]
Run Code Online (Sandbox Code Playgroud)
这可能包括一些误报。有没有更好的方法来列出所有用 创build 的虚拟环境venv?
注意:问题是关于venv具体的,而不是Anaconda、virtualenv 等。
试图实现:
问题:
测试分布在30个不同的文件中,实例化一个selenium对象,从而创建一个firefox配置文件,在第一次测试中不会持续到下面的测试,因为一旦脚本结束,对象就会死掉IIRC
无法指定配置文件,因为我正在编写一个应该在不同机器上运行的测试套件
可能的解决方案:
任何帮助表示赞赏,谢谢.
编辑:只是想到而不是生成一个子python进程来运行测试,我只是实例化selenium IDE生成的测试类,在所有30个测试中删除setUp和tearDown方法,在开始时实例化一个selenium对象,然后传递说selenium对象实例化的每个测试.
我正在将C模块中定义的类型子类化为别名的一些属性和方法,以便我的脚本在不同的上下文中工作.
如何让它工作,我必须手动调整我班级的字典?如果我没有DistanceTo在dictionnary中添加引用,我会得到Point3d has no attribute named DistanceTo.
class Point3d(App.Base.Vector):
def __new__(cls, x, y, z):
obj = super(Point3d, cls).__new__(cls)
obj.x, obj.y, obj.z = x, y, z
obj.__dict__.update({
'X':property(lambda self: self.x),
'Y':property(lambda self: self.y),
'Z':property(lambda self: self.z),
'DistanceTo':lambda self, p: self.distanceToPoint(p)})
return obj
def DistanceTo(self, p): return self.distanceToPoint(p)
Run Code Online (Sandbox Code Playgroud)
我在想,一旦__new__返回了一个实例,我仍然可以用方法和属性填充它.任何人都可以对此有所了解吗?
编辑:我导入的模块是FreeCAD.那里定义了C基类型.然后Vector是衍生形式这个定义在这里
编辑2:我也尝试了以下内容:
class Point3d(App.Base.Vector):
def __new__(cls, x, y, z):
obj = super(Point3d, cls).__new__(cls)
obj.x, obj.y, obj.z = x, y, z
obj.__dict__.update({
'X': x, 'Y': …Run Code Online (Sandbox Code Playgroud) 我有一个脚本,我想在Python3.5和IronPython2.7中执行.
该脚本最初是用Python3编写的,所以我有一些类似于下面代码的嵌套循环:
myIter0 = iter(['foo','foo','bar','foo','spam','spam'])
myIter1 = iter(['foo','bar','spam','foo','spam','bar'])
myIter2 = iter([1,2,3,4,5,6])
for a in myIter0:
for b, c in zip(myIter1, myIter2):
if a + b == 'foobar':
print(c)
break
Run Code Online (Sandbox Code Playgroud)
现在,如果我在IronPython2.7中运行它,我得不到相同的结果,因为zip返回一个列表而不是迭代器.
为了避免这个问题,我想我会这样做:
import sys
if sys.version_info.major == 2:
from itertools import izip as _zip
else:
_zip = zip
myIter0 = iter(['foo','foo','bar','foo','spam','spam'])
myIter1 = iter(['foo','bar','spam','foo','spam','bar'])
myIter2 = iter([1,2,3,4,5,6])
for a in myIter0:
for b, c in _zip(myIter1, myIter2):
if a + b == 'foobar':
print(c)
break
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点?
从相对于async forPython 3.5中的语法的文档中,我收集到它是为了迭代一个等待的迭代器而引入的.
尽管如此,我仍然没有按照描述的语义等价物获得:
iter = (ITER)
iter = type(iter).__aiter__(iter)
running = True
while running:
try:
TARGET = await type(iter).__anext__(iter)
except StopAsyncIteration:
running = False
else:
BLOCK
else:
BLOCK2
Run Code Online (Sandbox Code Playgroud)
线路iter = type(iter).__aiter__(iter)在做什么?为什么有必要?
好的我是(非常)新手Python用户,但我试图将一段Python代码翻译成R,我遇到了一个令人困惑的问题,即数组重塑.
让我们做一些示例数据:
X1 = np.array([[-0.047, -0.113, 0.155, 0.001],
[0.039, 0.254, 0.054, 0.201]], dtype=float)
In:X1
Out:
array([[-0.047, -0.113, 0.155, 0.001],
[0.039, 0.254, 0.054, 0.201]])
In:X1.shape
Out: (2,4)
Run Code Online (Sandbox Code Playgroud)
好的,我已经制作了一个包含2行和4列的2D数组.我很高兴.这行代码产生了混乱:
X2 = X1.reshape((2, -1, 1))
In: X2
Out:
array([[[-0.047],
[-0.113],
[0.155],
[0.001]],
[0.039],
[0.254],
[0.054],
[0.201]]])
In: X2.shape
Out: (2, 4, 1)
Run Code Online (Sandbox Code Playgroud)
所以我知道我添加了一个额外的维度(我认为是1reshape命令中的第三个数字),但我不明白这是做了什么的.形状意味着它仍然有2行4列,但显然还有其他东西被改变了.我的动机再一次是在R中做同样的操作,但直到我知道我明白我在这里转变了什么我才被困住了.(请原谅我,如果这是一个非常糟糕的问题我昨天才开始使用Python!)
我想使用从Chrome浏览器复制的Cookie,但会出错。
import urllib.request
import re
def open_url(url):
header={"User-Agent":r'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}
Cookies={'Cookie':r"xxxxx"}
Request=urllib.request.Request(url=url,headers=Cookies)
response=urllib.request.urlopen(Request,timeout=100)
return response.read().decode("utf-8")
Run Code Online (Sandbox Code Playgroud)
我的代码在哪里出错?那是headers = Cookies吗?
我生成一个随机数据样本并使用 scipy.stats.norm.fit 绘制其 pdf 以生成我的 loc 和 scale 参数。
我想看看如果我只是使用 numpy 计算均值和标准差而不进行任何实际拟合,我的 pdf 会是什么样子。令我惊讶的是,当我绘制两个 pdf 并打印两组 mu 和 std 时,我得到的结果完全相同。所以我的问题是,如果我可以计算样本的均值和标准差并仍然得到相同的结果,那么 norm.fit 的意义何在?
这是我的代码:
import numpy as np
from scipy.stats import norm
import matplotlib.pyplot as plt
data = norm.rvs(loc=0,scale=1,size=200)
mu1 = np.mean(data)
std1 = np.std(data)
print(mu1)
print(std1)
mu, std = norm.fit(data)
plt.hist(data, bins=25, density=True, alpha=0.6, color='g')
xmin, xmax = plt.xlim()
x = np.linspace(xmin, xmax, 100)
p = norm.pdf(x, mu, std)
q = norm.pdf(x, mu1, std1)
plt.plot(x, p, 'k', linewidth=2)
plt.plot(x, q, …Run Code Online (Sandbox Code Playgroud) 我有一个函数,给定一个 xy 坐标的 numpy 数组,它过滤那些位于 L 边的盒子内的
import numpy as np
from numba import njit
np.random.seed(65238758)
L = 10
N = 1000
xy = np.random.uniform(0, 50, (N, 2))
box = np.array([
[0,0], # lower-left
[L,L] # upper-right
])
def sinjit(xy, box):
mask = np.all(np.logical_and(xy >= box[0], xy <= box[1]), axis=1)
return xy[mask]
Run Code Online (Sandbox Code Playgroud)
如果我运行这个函数,它会返回正确的结果:
sinjit(xy, box)
Output: array([[5.53200522, 7.86890708],
[4.60188554, 9.15249881],
[9.072563 , 5.6874726 ],
[4.48976127, 8.73258166],
...
[6.29683131, 5.34225758],
[2.68057087, 5.09835442],
[5.98608603, 4.87845464],
[2.42049857, 6.34739079],
[4.28586677, 5.79125413]])
Run Code Online (Sandbox Code Playgroud)
但是,由于我想通过使用 numba 在循环中加速此任务,因此 …
python ×10
numpy ×2
python-3.x ×2
arrays ×1
freecad ×1
ironpython ×1
numba ×1
python-c-api ×1
python-venv ×1
qpython ×1
qpython3 ×1
reshape ×1
scipy ×1
scipy.stats ×1
selenium ×1
statistics ×1
subclassing ×1
version ×1