从另一个python脚本运行python脚本时找不到模块

时间:2019-06-28 19:01:46

标签: python python-3.x pycharm python-venv

我有一个使用flask的简单脚本。

from flask import Flask

app = Flask(__name__)


@app.route('/')
def hello_world():
    text = '<h2>Text: </h2><form><input name="firstname" type="text">'
    select = '<h2>Select: </h2><select name="cars">' + \
              '<option value="volvo">Volvo</option>' + \
              '<option value="saab">Saab</option>' + \
              '<option value="fiat">Fiat</option> ' + \
              '<option value="audi">Audi</option>' + \
            '</select>'
    multiselect = '<h2>Multiselect: </h2><select name="mCars" multiple>' + \
              '<option value="volvo">Volvo</option>' + \
              '<option value="saab">Saab</option>' + \
              '<option value="fiat">Fiat</option> ' + \
              '<option value="audi">Audi</option>' + \
            '</select>'
    textarea = '<h2>Textarea: </h2><textarea name="message" rows="10" cols="30">' + \
                'The cat was playing in the garden.' + \
                '</textarea>'
    button = '<h2>Button</h2><button type="button" onclick="alert(\'Hello World!\')">Click Me!</button>'
    # datalist = '<h2>Datalist</h2><datalist id="browsers">' + \
    #               '<option value="Internet Explorer">' + \
    #               '<option value="Firefox">' + \
    #               '<option value="Chrome">' + \
    #               '<option value="Opera">' + \
    #               '<option value="Safari">' + \
    #             '</datalist> '
    return '<h1>Sample Form</h1>' + \
           text + \
           select + \
           multiselect + \
           textarea + \
           button


if __name__ == '__main__':
    app.run()

我正在尝试从另一个名为Runner.py的文件中运行它

subprocess.call(['python', get_driver_file_path(Settings.TestProjectPath)])

我收到一个找不到烧瓶模块的错误消息:

Traceback (most recent call last):
  File "D:\Dev\Python\python-testing-framework\Fitv\FitvTests/TestProjects/Flask_App/app.py", line 1, in <module>
    from flask import Flask
ModuleNotFoundError: No module named 'flask'

虽然烧瓶已在项目中设置。如果我只是通过右键单击>在Pycharm中运行,则可以正常运行。

enter image description here

为什么从另一个文件运行时找不到模块?

2 个答案:

答案 0 :(得分:0)

将路径添加到subprocess.sys.path或sys.path,其中两个相同。

subprocess.sys.path.append("your virtualenv path")

答案 1 :(得分:0)

我在pycharm中也遇到过类似的问题。 如果您使用的是conda,请尝试以下步骤:-

  1. 首先在anaconda提示中激活虚拟环境 康达激活virtual_env_name。

  2. 导航到pycharm的安装路径。

  3. 启动pycharm。

上述步骤可以解决您的问题。