小编Jac*_*din的帖子

你能更新Python3的QPython3版本吗?

我想在Qpython3上安装biopython,但它说我有python 3.2并且需要3.3或更高版本.是否有更高版本的QPython3版本?我可以以某种方式更新它吗?-谢谢

python version python-3.x qpython qpython3

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

如何列出使用 venv 创建的所有虚拟环境?

有人刚刚问我如何列出所有使用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 等。

python python-venv

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

保持Firefox配置文件在多个Selenium测试中保持不变,而无需指定配置文件

试图实现:

  • 整个测试中同样的firefox配置文件

问题:

  • 测试分布在30个不同的文件中,实例化一个selenium对象,从而创建一个firefox配置文件,在第一次测试中不会持续到下面的测试,因为一旦脚本结束,对象就会死掉IIRC

  • 无法指定配置文件,因为我正在编写一个应该在不同机器上运行的测试套件

可能的解决方案:

  • 在一些公共代码中创建一个selenium对象,在整个测试过程中保留在内存中.我通过生成一个新的python进程并等待它结束来运行每个测试.我不确定如何将内存中的对象发送到新的python对象.

任何帮助表示赞赏,谢谢.

编辑:只是想到而不是生成一个子python进程来运行测试,我只是实例化selenium IDE生成的测试类,在所有30个测试中删除setUp和tearDown方法,在开始时实例化一个selenium对象,然后传递说selenium对象实例化的每个测试.

python selenium

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

子类化C模块中定义的类型时忽略的方法

我正在将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)

python python-c-api subclassing freecad

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

在IronPython 2.7和Python3.5中压缩

我有一个脚本,我想在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)

有没有更好的方法来做到这一点?

python ironpython

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

异步的语义等价于

从相对于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-asyncio

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

numpy数组重塑添加维度

好的我是(非常)新手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!)

python arrays numpy reshape

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

如何在Python 3中使用Cookie?

我想使用从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吗?

python python-3.x

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

scipy 中 norm.fit 的意义是什么?

我生成一个随机数据样本并使用 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)

python statistics scipy scipy.stats

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

numpy np.all 轴参数的解决方法;与 numba 的兼容性

我有一个函数,给定一个 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 numpy numba

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