【问题标题】:Python module not getting installed on HerokuPython 模块未安装在 Heroku 上
【发布时间】:2020-09-13 13:20:25
【问题描述】:

我有一个 Django 应用程序,在尝试部署到 Heroku 时,抱怨找不到“加密”模块:

...
remote: Verifying deploy... done.
remote: Running release command...
remote:
remote: Traceback (most recent call last):
remote:   File "/app/.heroku/python/lib/python3.8/site-packages/rest_framework/settings.py", line 177, in import_from_string
remote:     return import_string(val)
remote:   File "/app/.heroku/python/lib/python3.8/site-packages/django/utils/module_loading.py", line 17, in import_string
remote:     module = import_module(module_path)
remote:   File "/app/.heroku/python/lib/python3.8/importlib/__init__.py", line 127, in import_module
remote:     return _bootstrap._gcd_import(name[level:], package, level)
remote:   File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
remote:   File "<frozen importlib._bootstrap>", line 991, in _find_and_load
remote:   File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
remote:   File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
remote:   File "<frozen importlib._bootstrap_external>", line 783, in exec_module
remote:   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
remote:   File "/app/oda_project/users/authentication.py", line 14, in <module>
remote:     from Crypto.Cipher import AES
remote: ModuleNotFoundError: No module named 'Crypto'

在我的机器上本地运行良好,我已将该模块添加到 requirements.txt。甚至尝试使用 Heroku CLI 进行安装。

有没有人在 Heroku 上成功使用过 python 密码学,以及如何使用?我正在使用该模块来加密/解密字符串。

谢谢。

编辑: 这是我的 requirements.txt:

requests
Crypto
boto
app==0.0.1
asgiref==3.2.3
dj-database-url==0.5.0
Django==3.0.2
djangorestframework==3.11.0
psycopg2-binary==2.8.4
python-dotenv==0.10.5
pytz==2019.3
sqlparse==0.3.0

我将它放在我项目的根目录中。在 Heroku 控制台中执行 pip list 我得到:

【问题讨论】:

  • 你能显示你的目录结构和 requirements.txt 的内容吗?
  • @Ken4scholars 我添加了一些额外的信息。在我添加 Crypto 包之前,heroku 部署运行良好
  • 尝试在需求文件中添加加密版本。有帮助吗?

标签: python django heroku django-rest-framework cryptography


【解决方案1】:

您很可能在本地计算机上使用不属于 Python 标准库的库。

您需要将您的需求添加到您的 requirements.txt 文件或您的 Pipfile 中。见相关Heroku documentation on requirements in Python。

顺便说一句,如果您使用 Pycrypto,您主要考虑一些替代方案,因为它是 no longer maintained。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-17
    • 2022-07-06
    • 2016-09-08
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 2011-01-23
    相关资源
    最近更新 更多