我有一个像这样的文件main.py:
import node.py
[my code...]
Run Code Online (Sandbox Code Playgroud)
和node.py这样:
[more of my code]
Run Code Online (Sandbox Code Playgroud)
执行main.py时,我收到此错误:
File "/home/loldrup/repo/trunk/src/src/main.py", line 2, in <module>
import node.py
ImportError: No module named py
Run Code Online (Sandbox Code Playgroud) 任何人都可以解释哪些'导入'是通用的,所以我不需要写例如:
from numpy import *
import numpy
import numpy as np
from numpy.linalg import *
Run Code Online (Sandbox Code Playgroud)
为什么不import numpy或from numpy import *从"numpy"中扼杀所有人?
我试图导入我的代码库wave(由pip命名),如下所示:
import wave
Run Code Online (Sandbox Code Playgroud)
接下来我在我的程序中使用的是
raw = wave.open('file.wav', 'rb')
Run Code Online (Sandbox Code Playgroud)
在控制台中运行我的程序后,我遇到了这个奇怪的问题:
AttributeError: 'module' object has no attribute 'open'
Run Code Online (Sandbox Code Playgroud)
问题是什么?
我在Python 3.2中观察到__future__模块的奇怪行为print_function.
拿,例如这段代码:
from __future__ import print_function
import sys
print('Enter the base path of the images: ', end='')
path = sys.stdin.readline().strip().strip('"')
if len(path) == 0:
print("No path entered")
else:
print(root)
print("\n\nPress ENTER to exit")
exit = sys.stdin.readline()
Run Code Online (Sandbox Code Playgroud)
运行脚本时,控制台会ENTER在显示第一个print语句之前等待用户按下.
然后输出如下所示:
Enter the base path of the images: No path entered Press ENTER to exit
不用说,向用户显示空提示会导致很多混乱,特别是因为很多人都害怕带有白色文本的黑色窗口(命令提示符).
当代码更改为此时
from __future__ import print_function
import sys
print('\nEnter the base path of the images: ', end='') #line now …Run Code Online (Sandbox Code Playgroud) 我最近在Python 3.3.2中安装了一个库.我试图从中导入一个模块:import cx_Freeze.freezer.但是,cx_Freeze.freezer没有像我预期的那样定义,如IDLE所示:
>>> ================================ RESTART ================================
>>> import cx_Freeze.freezer
>>> cx_Freeze.freezer
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
cx_Freeze.freezer
AttributeError: 'module' object has no attribute 'freezer'
>>>
Run Code Online (Sandbox Code Playgroud)
在命令行中也会发生同样的事情.我想我误解了使用点符号导入时会发生什么; 模块分配给什么名称?
为了解决这个看似问题,我import cx_Freeze.freezer as f在重新启动shell之后尝试了,但是它给出了和以前一样的错误.有人可以解释为什么这些导入语句不允许我访问该模块?
什么是从Django中的模型(或表单或视图)导入的pythonic方法?
坦率地说,坦率地说:
from myapp.models import foo, bar, foobar, barfoo, foofoo, barbar, barfoobar, thelistgoeson, and, on, andon...
Run Code Online (Sandbox Code Playgroud)
它远远超过最多79个字符 - 但更好的方法是什么?
我有一些脚本在其他目录(恰好是子目录)中使用了共享代码。
由于各种原因,我不想将共享代码打包到Python包中,也不想将所有文件转储到一个目录中,也不想将子目录添加到路径中。
有什么办法可以相对导入并提取Python 3子目录中的文件?
在IPython3中
import subdir.my_shared_library
Run Code Online (Sandbox Code Playgroud)
工作正常。
但是,在Python3中,以及我为添加__init__.py文件和执行类似的显式导入所做的每一次尝试,它都失败了import .subdir.my_shared_library。
有办法解决这个问题吗?
我想将ANTLR4与Python 2.7结合使用,为此,我做了以下工作:
我antlr4-4.6-1使用sudo pacman -S antlr4。将软件包安装在Arch Linux上。
我写了一个MyGrammar.g4文件,并成功生成了Lexer和Parser Codeantlr4 -Dlanguage=Python2 MyGrammar.g4
现在执行例如生成的Lexer代码并python2 MyGrammarLexer.py导致错误ImportError: No module named antlr4。
可能是什么问题?仅供参考:我同时安装了Python2和Python3-我不知道这是否会造成任何麻烦。
使用numpy作为一个例子,我似乎无法实现什么做这样一个进口的好处将做到:
import numpy.lib
Run Code Online (Sandbox Code Playgroud)
导入完成后,numpy可以作为名称使用,相当于直接导入它:
import numpy
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,您lib只能使用虚线访问来访问子模块:
>>> numpy.lib
<module 'numpy.lib' from ....>
Run Code Online (Sandbox Code Playgroud)
是否存在做import numpy.lib有益的情况?
python ×10
python-import ×10
python-3.x ×3
antlr ×1
antlr3 ×1
antlr4 ×1
cython ×1
django ×1
import ×1
importerror ×1
module ×1
numpy ×1
packages ×1
python-3.3 ×1