小编she*_*per的帖子

超出相对导入中的顶级包错误

看来这里已经有一些关于python 3中相对导入的问题了,但是在经历了很多这些问题后,我仍然找不到我的问题的答案.所以这是问题所在.

我有一个如下所示的包裹

package/
   __init__.py
   A/
      __init__.py
      foo.py
   test_A/
      __init__.py
      test.py
Run Code Online (Sandbox Code Playgroud)

我在test.py中有一行:

from ..A import foo
Run Code Online (Sandbox Code Playgroud)

现在,我在文件夹中package,我跑了

python -m test_A.test
Run Code Online (Sandbox Code Playgroud)

我收到了消息

"ValueError: attempted relative import beyond top-level package"
Run Code Online (Sandbox Code Playgroud)

但如果我在父文件夹中package,例如,我运行:

cd ..
python -m package.test_A.test
Run Code Online (Sandbox Code Playgroud)

一切都好.

现在我的问题是: 当我在文件夹中时package,我在test_A子包中运行模块test_A.test,根据我的理解,..A只上升一个级别,它仍然在package文件夹中,为什么它给出了消息说beyond top-level package.导致此错误消息的原因是什么?

python import package

238
推荐指数
12
解决办法
18万
查看次数

为什么从原始列表中弹出会使 reversed(original_list) 为空?

我有以下代码:

s = [1,2,3]
t = reversed(s)

for i in t:
    print(i)
# output: 3,2,1
Run Code Online (Sandbox Code Playgroud)

如果我从s(原始)中弹出一个元素,那么t(反向)将被清空:

s = [1,2,3]
t = reversed(s)
s.pop()

for i in t:
    print(i)
# expected output: 2, 1
# actual output (nothing): 
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况?

python python-3.x

33
推荐指数
2
解决办法
1535
查看次数

禁用matplotlib pyplot的输出

我有一个A形状阵列(1000,2000).我使用matplotlib.pyplot绘制数组,这意味着1000条曲线,使用

import matplotlib.pyplot as plt
plt(A)
Run Code Online (Sandbox Code Playgroud)

这个数字很好,但有一千行:

<matplotlib.lines.Line2D at 0xXXXXXXXX>
Run Code Online (Sandbox Code Playgroud)

我可以禁用此输出吗?

python matplotlib

31
推荐指数
4
解决办法
2万
查看次数

Windows下的OpenCV for Python 3.x.

我一直在互联网上搜索一段时间,但是我无法找到有关如何在Windows下安装OpenCV for Python 3.x的详细说明.

如果他/她已成功安装OpenCV for Python 3.x,无论是从预构建的二进制文件还是从源代码安装OpenCV 2.x或OpenCV 3版本,我真的很感激.X.

python windows opencv python-3.x

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

pdb/ipdb for python在可编辑条件下中断

说我有以下代码的代码:

for i in range(100):
    print i
Run Code Online (Sandbox Code Playgroud)

一般来说,我可以在代码中添加一行:

for i in range(100):
    import ipdb;ipdb.set_trace()
    print i
Run Code Online (Sandbox Code Playgroud)

但是,现在我想在条件下调试它i == 10,我不想c在ipdb中输入10次​​,我该怎么办?

在我找到的文档中condition bpnumber [condition],但我怎么知道bpnumber是否没有bpnumber索引列表.文档还说b(reak) ([file:]lineno | function) [, condition].例如,假设行号print ixx.我在ipdb shell中输入了以下内容:b xx, i == 10但没有按预期发生.

python pdb

19
推荐指数
3
解决办法
6306
查看次数

docker 图像与 Windows 的 docker-desktop 一起存储在哪里?

我从https://www.docker.com/products/docker-desktop为 windows 10 安装了 docker-desktop ,并为 Linux 容器启用了 docker 守护进程。我有自己的 wsl2 发行版,名为 ubuntu,我启用了 docker-desktop 与发行版 ubuntu 的集成,并在其中构建了一个映像。但我无法弄清楚图像的保存位置。我做了一些搜索,发现有人说它在\\wsl$\docker-desktop-data\mnt\wsl\docker-desktop-data\data\docker. 我确实找到了这个文件夹,但整个文件夹只有几百 MB,而我的图像有几 GB。我只在文件夹中找到元数据,而不是真实图像。有人指出我可以在 docker 资源配置选项卡中找到图像路径,但我的没有显示 docker 图像在哪里...... 码头资源

有没有人在类似情况下找到图像?

更新 在文件夹中创建的卷:\\wsl$\docker-desktop-data\mnt\wsl\docker-desktop-data\version-pack-data\community\docker\volumes

docker windows-subsystem-for-linux docker-desktop

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

如何获取C的numpy数组的内存地址

我构建了一个numpy数组::

a=np.ndarray([2,3]) 
Run Code Online (Sandbox Code Playgroud)

然后我想看看它的数据在哪里::

a.data 
>>>Out[213]: <read-write buffer for 0x0482C1D0, size 48, offset 0 at 0x049E87A0> 
a.data 
>>>Out[214]: <read-write buffer for 0x0482C1D0, size 48, offset 0 at 0x049E82A0> 
a.data 
>>>Out[215]: <read-write buffer for 0x0482C1D0, size 48, offset 0 at 0x049E81C0> 
Run Code Online (Sandbox Code Playgroud)

...

为什么每次偏移地址都不同?如果我想使用c_types将数据传输到ac函数::

ctypes_array = (ctypes.c_char * a.size * 8).from_address(ptr) 
Run Code Online (Sandbox Code Playgroud)

我该如何获得ptr的价值?

python numpy

16
推荐指数
1
解决办法
8984
查看次数

如何在emacs中编写密钥绑定以便轻松重复?

假设我将键绑定到某个函数,如下所示:

(global-set-key (kbd "C-c =") 'function-foo)
Run Code Online (Sandbox Code Playgroud)

现在,我想让键绑定工作为:
在我C-c =第一次按下之后,如果我想重复函数foo,我不需要C-c再次按下,而只需重复按下=.然后,在我调用function-foo足够次之后,我可以按除=(或明确按下C-g)以外的键退出.

这该怎么做?

emacs elisp

12
推荐指数
3
解决办法
1049
查看次数

pycharm代码自动完成不适用于python控制台与ipython

自动完成在编辑窗口中有效,但在具有Ipython环境的python控制台中不起作用.但是,当我ipython在终端窗口中运行时,Ipython出现并自动完成工作.

我在Windows下使用Pycharm社区版本4.0.6.有人建议自动完成键绑定是ctrl-space,但是,我发现在编辑窗口中,TAB适用于自动完成.

python autocomplete ipython pycharm

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

如何在conda env中重用全局站点包

我有一个名为的项目ABC,我有一个conda env只是为了它在折叠~/anaconda/envs/ABC,我相信它是一个venv,我想使用全球网站包中的一些特定的包.

对于普通的Python安装,可以从venv文件夹中删除no-global-site-package.txt,或者通过设置venv来使用global-site-packages,但我没有找到任何等效方法来执行此操作在Anaconda.在线文档也没有答案.

如何为Anaconda做这个?

python virtualenv anaconda

8
推荐指数
2
解决办法
6472
查看次数