【问题标题】:Running my Python script in my virtual env?在我的虚拟环境中运行我的 Python 脚本?
【发布时间】:2017-06-25 13:18:06
【问题描述】:

这里是全部python新手,我想运行我的.py flask api文件,我cd到我的目录,激活我的python虚拟环境,然后我尝试run.py

问题是它打印:

$ python run.py                                             

Traceback(最近一次调用最后一次):文件“run.py”,第 1 行,在 from flask_sqlalchemy import SQLAlchemy ImportError: No module named flask_sqlalchemy

据我所知,我在我的 virtualenv 中并安装了我的包,这不应该发生。尝试在任何包上pip3 install 显示它们已经存在。

为了进一步解决这个问题,我尝试在 pycharm 中运行脚本,我在日志中得到以下错误打印:`Traceback(最近一次调用最后一次):

  File "/Users/Jack/Developer/Python/lift_api/run.py", line 26, in <module>
    sqlAlchemy.create_all() 
  File "/Users/Jack/Developer/Python/lift_api/liftapi/lib/python3.6/site-packages/flask_sqlalchemy/__init__.py", line 1007, in create_all
    self._execute_for_all_tables(app, bind, 'create_all')
  File "/Users/Jack/Developer/Python/lift_api/liftapi/lib/python3.6/site-packages/flask_sqlalchemy/__init__.py", line 999, in _execute_for_all_tables
    op(bind=self.get_engine(app, bind), **extra)
  File "/Users/Jack/Developer/Python/lift_api/liftapi/lib/python3.6/site-packages/flask_sqlalchemy/__init__.py", line 941, in get_engine
    return connector.get_engine()
  File "/Users/Jack/Developer/Python/lift_api/liftapi/lib/python3.6/site-packages/flask_sqlalchemy/__init__.py", line 543, in get_engine
    self._engine = rv = sqlalchemy.create_engine(info, **options)
  File "/Users/Jack/Developer/Python/lift_api/liftapi/lib/python3.6/site-packages/sqlalchemy/engine/__init__.py", line 387, in create_engine
    return strategy.create(*args, **kwargs)
  File "/Users/Jack/Developer/Python/lift_api/liftapi/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 80, in create
    dbapi = dialect_cls.dbapi(**dbapi_args)
  File "/Users/Jack/Developer/Python/lift_api/liftapi/lib/python3.6/site-packages/sqlalchemy/dialects/postgresql/psycopg2.py", line 554, in dbapi
    import psycopg2
ModuleNotFoundError: No module named 'psycopg2'`

有人有想法吗?

【问题讨论】:

  • OP,使用pip安装时,你使用sudo吗?
  • 不,我只是使用 pip3 安装,但它已经安装,所以这不是问题
  • 你用的是python3还是python2?
  • python 3 因此 pip3
  • @jwarris91 python run.py - 不应该是python3 run.py吗?

标签: python flask virtualenv


【解决方案1】:

要使用 python 3.x 运行您的代码,请使用 python3 命令。

python3 run.py

【讨论】:

    【解决方案2】:

    说什么它需要什么 - psycopg2。如果您使用的是 Ubuntu,它会有所帮助:

    sudo apt install libpq-dev python-dev
    

    然后不要忘记在您的 virtualenv 激活时安装 flask-sqlalchemy 和其他库。

    【讨论】:

    • $ pip3 install psycopg2 要求已经满足:/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages 中的 psycopg2
    • @jwarris91,抱歉,您使用的是 Windows 吗?
    • 我使用的是mac,如果我们只是安装软件包,它应该不会有什么不同,这似乎并不是真正的问题
    • @jwarris91 你试过全局安装 psycopg2 吗?没有 virtualenv?
    • 我为什么要这样做?这将是许多倒退,并不能解决问题
    猜你喜欢
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 2016-07-05
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2022-01-11
    相关资源
    最近更新 更多