我有一个名为' downloadflat-modular.py'的模块,python无法导入此模块
Python 3.4.0 (default, Apr 11 2014, 13:05:11)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import downloadflat-modular
File "<stdin>", line 1
import downloadflat-modular
^
SyntaxError: invalid syntax
>>> from downloadflat-modular import *
File "<stdin>", line 1
from downloadflat-modular import *
^
SyntaxError: invalid syntax
>>>
这是限制吗?
uname -a
Linux ubuntu 3.16.0-30-generic #40~14.04.1-Ubuntu SMP Thu Jan 15 17:43:14 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
答案 0 :(得分:4)
包名称是标识符,因此它们不能包含连字符。
python中的标识符必须以>开头,并带有小写/大写字母或下划线,并且可以在名称的其余部分包含数字。
根据PEP8,建议的风格如下:
https://www.python.org/dev/peps/pep-0008/#package-and-module-names
模块应该有简短的全小写名称。如果提高可读性,则可以在模块名称中使用下划线。 Python包也应该有简短的全小写名称,但不鼓励使用下划线。
答案 1 :(得分:2)
你可以说,这是一种限制。
-
是减法运算符,因此Python将downloadflat-modular
解释为“downloadflat
减去modular
”,这在import
语句后是不允许的。< / p>
基本上,您不能(也不应该)使用-
符号在Python中命名任何内容。
答案 2 :(得分:2)
是的,python import
只能接受有效的标识符。
选择是:
downloadflat_modular.py
,然后更改为import downloadflat_modular
importlib.import_module("downloadflat-modular")
。