看来这里已经有一些关于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.导致此错误消息的原因是什么?
我有以下代码:
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)
为什么会发生这种情况?
我有一个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)
我可以禁用此输出吗?
我一直在互联网上搜索一段时间,但是我无法找到有关如何在Windows下安装OpenCV for Python 3.x的详细说明.
如果他/她已成功安装OpenCV for Python 3.x,无论是从预构建的二进制文件还是从源代码安装OpenCV 2.x或OpenCV 3版本,我真的很感激.X.
说我有以下代码的代码:
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 i是xx.我在ipdb shell中输入了以下内容:b xx, i == 10但没有按预期发生.
我从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
我构建了一个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的价值?
假设我将键绑定到某个函数,如下所示:
(global-set-key (kbd "C-c =") 'function-foo)
Run Code Online (Sandbox Code Playgroud)
现在,我想让键绑定工作为:
在我C-c =第一次按下之后,如果我想重复函数foo,我不需要C-c再次按下,而只需重复按下=.然后,在我调用function-foo足够次之后,我可以按除=(或明确按下C-g)以外的键退出.
这该怎么做?
自动完成在编辑窗口中有效,但在具有Ipython环境的python控制台中不起作用.但是,当我ipython在终端窗口中运行时,Ipython出现并自动完成工作.
我在Windows下使用Pycharm社区版本4.0.6.有人建议自动完成键绑定是ctrl-space,但是,我发现在编辑窗口中,TAB适用于自动完成.
我有一个名为的项目ABC,我有一个conda env只是为了它在折叠~/anaconda/envs/ABC,我相信它是一个venv,我想使用全球网站包中的一些特定的包.
对于普通的Python安装,可以从venv文件夹中删除no-global-site-package.txt,或者通过设置venv来使用global-site-packages,但我没有找到任何等效方法来执行此操作在Anaconda.在线文档也没有答案.
如何为Anaconda做这个?
python ×8
python-3.x ×2
anaconda ×1
autocomplete ×1
docker ×1
elisp ×1
emacs ×1
import ×1
ipython ×1
matplotlib ×1
numpy ×1
opencv ×1
package ×1
pdb ×1
pycharm ×1
virtualenv ×1
windows ×1