python writefile ImportError:没有名为“mainss_script”的模块

问题描述 投票:0回答:1
%%writefile mainss_script.py
def count_vowels(sentence):
    """Count the number of vowels in sentence."""
    vowels = 0
    for c in sentence:
        if c.lower() in "aeiouy":
            vowels = vowels + 1
    return vowels

def count_consonants(sentence):
    """Count the number of consonants in sentence."""
    consonants = 0
    for c in sentence:
        if c.isalpha():
            if c.lower() not in "aeiouy":
                consonants = consonants + 1
    return consonants

def count_digits(sentence):
    """Count the number of digits in sentence."""
    digits = 0
    for c in sentence:
        if c.isdigit():
            digits = digits + 1
    return digits
def mainss():
    test_sentence = "Plan 2 is not working!"
    print("Number of vowels = {:d}".format(count_vowels(test_sentence)))
    print("Number of consonants = {:d}".format(count_consonants(test_sentence)))
    print("Number of digits = {:d}".format(count_digits(test_sentence)))

if (__name__=="__main__"):
    mainss()

import mainss_script
mainss_script.mainss()

ImportError                               Traceback (most recent call last)
<ipython-input-66-1fd7edecdd49> in <module>()
----> 1 import mainss_script
      2 mainss_script.mainss()

ImportError: No module named 'mainss_script'

生成了mainss_script.py,但是,当我尝试导入它时,它返回错误,为什么?

忽略单词要求忽略单词要求忽略单词要求

python python-3.x importerror writefile
1个回答
0
投票

文件mainss_script.py必须位于启动ipython的目录中。

如果没有,您可以将其位置插入sys.path,以便口译员找到它

import sys
sys.path.insert(0, "path to mainss_script.py")

import mainss_script
mainss_script.mainss()

此外,%%writefile是Jupyter魔术别名命令,用于将单元格的内容写入文件。所以我的猜测是你的代码是从一些Jupyter笔记本复制的,并且运行包含这些行的单元格会在当前目录中创建mainss_script

如果您没有该文件,请将除包含%%writefile的行之外的那些代码行粘贴到启动IPython的同一目录中的文件mainss_script.py中。

如果由于某种原因你确实希望将mainss_script.py保存在特定位置,那么你应该按照上面的说明将mainss_script的路径添加到sys.path中,以便解释器找到它。之后执行导入和运行mainss()的行,事情应该有效。

© www.soinside.com 2019 - 2024. All rights reserved.