我正在构建使用python-magic 0.4.15的应用程序。在我的本地计算机上,python-magic-bin 0.4.15就像一个超级按钮(Windows)一样工作,但我正在尝试使其在Heroku上运行。首先,我只是想让测试通过Heroku-CI。我将包裹添加到了form
:
requirements.txt
并将其推送到Heroku。它已正确安装:
python-magic==0.4.15
但是它像这样崩溃:
-----> Installing requirements with pip
Collecting python-magic==0.4.15 (from -r /app/requirements.txt (line 7))
Downloading https://files.pythonhosted.org/packages/42/a1/76d30c79992e3750dac6790ce16f056f870d368ba142f83f75f694d93001/python_magic-0.4.15-py2.py3-none-any.whl
Installing collected packages: python-magic
Successfully installed python-magic-0.4.15
我尝试添加the NetsoftHoldings/heroku-buildpack-magic buildpack,可以看到它正在下载:
+ python manage.py collectstatic --no-input
Traceback (most recent call last):
File "manage.py", line 20, in <module>
execute_from_command_line(sys.argv)
File "/app/.heroku/python/lib/python3.6/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
utility.execute()
File "/app/.heroku/python/lib/python3.6/site-packages/django/core/management/__init__.py", line 357, in execute
django.setup()
File "/app/.heroku/python/lib/python3.6/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/app/.heroku/python/lib/python3.6/site-packages/django/apps/registry.py", line 120, in populate
app_config.ready()
File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/admin/apps.py", line 24, in ready
self.module.autodiscover()
File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/admin/__init__.py", line 26, in autodiscover
autodiscover_modules('admin', register_to=site)
File "/app/.heroku/python/lib/python3.6/site-packages/django/utils/module_loading.py", line 47, in autodiscover_modules
import_module('%s.%s' % (app_config.name, module_to_search))
File "/app/.heroku/python/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/app/core/admin.py", line 8, in <module>
from .forms import CrmDataUploadForm
File "/app/core/forms.py", line 3, in <module>
from magic import magic
ImportError: cannot import name 'magic'
pip软件包已正确安装:
-----> Fetching https://github.com/NetsoftHoldings/heroku-buildpack-magic.git buildpack...
buildpack downloaded
,但是buildpack似乎有一个错误(我在这里猜测):
-----> Installing requirements with pip
Collecting python-magic==0.4.15 (from -r /app/requirements.txt (line 7))
Downloading https://files.pythonhosted.org/packages/42/a1/76d30c79992e3750dac6790ce16f056f870d368ba142f83f75f694d93001/python_magic-0.4.15-py2.py3-none-any.whl
Installing collected packages: python-magic
Successfully installed python-magic-0.4.15
它最终像这样崩溃:
-----> libmagic app detected
bash: /tmp/buildpacks/27353aa3b5edb2f8361186206e863f5d481f02805d02f0efdec439f3d30349a4fbdad2951af33a0492023fb0d90d26dafda6fe76f1b2d34f68564a98545f7022/export: No such file or directory
RootDir: /tmp/buildpacks/ba9220b10d71b7b776013869da2c820ccb5c0f1733268ae2515b3b8ad5edd44d2016d1119bce32d1660fbd84da179891a404dcc57df043b9d82e22725739b072
BuildDir: /app
HOME: /app
Build list
config
Home list
config
然后我尝试添加+ python manage.py collectstatic --no-input
Traceback (most recent call last):
File "manage.py", line 20, in <module>
execute_from_command_line(sys.argv)
File "/app/.heroku/python/lib/python3.6/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
utility.execute()
File "/app/.heroku/python/lib/python3.6/site-packages/django/core/management/__init__.py", line 357, in execute
django.setup()
File "/app/.heroku/python/lib/python3.6/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/app/.heroku/python/lib/python3.6/site-packages/django/apps/registry.py", line 120, in populate
app_config.ready()
File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/admin/apps.py", line 24, in ready
self.module.autodiscover()
File "/app/.heroku/python/lib/python3.6/site-packages/django/contrib/admin/__init__.py", line 26, in autodiscover
autodiscover_modules('admin', register_to=site)
File "/app/.heroku/python/lib/python3.6/site-packages/django/utils/module_loading.py", line 47, in autodiscover_modules
import_module('%s.%s' % (app_config.name, module_to_search))
File "/app/.heroku/python/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/app/core/admin.py", line 8, in <module>
from .forms import CrmDataUploadForm
File "/app/core/forms.py", line 3, in <module>
from magic import magic
ImportError: cannot import name 'magic'
buildpack和一个包含以下内容的Aptfile:
heroku-community/apt
我可以看到它们已正确安装:
libmagic-dev
libmagic1
但是应用程序仍然失败,并显示相同的错误:
-----> Fetching .debs for libmagic-dev
Reading package lists...
Building dependency tree...
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 23 not upgraded.
Need to get 79.4 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu bionic-security/main amd64 libmagic-dev amd64 1:5.32-2ubuntu0.1 [79.4 kB]
Fetched 79.4 kB in 0s (222 kB/s)
Download complete and in download only mode
W: --force-yes is deprecated, use one of the options starting with --allow instead.
-----> Fetching .debs for libmagic1
Reading package lists...
Building dependency tree...
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 23 not upgraded.
Need to get 68.4 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu bionic-security/main amd64 libmagic1 amd64 1:5.32-2ubuntu0.1 [68.4 kB]
Fetched 68.4 kB in 0s (199 kB/s)
Download complete and in download only mode
W: --force-yes is deprecated, use one of the options starting with --allow instead.
-----> Installing libmagic1_1%3a5.32-2ubuntu0.1_amd64.deb
-----> Installing libmagic-dev_1%3a5.32-2ubuntu0.1_amd64.deb
有什么想法如何使python-magic在Heroku上工作吗?
答案 0 :(得分:1)
导入button.isSelected = true
模块的正确方法是:
magic
不是
import magic
python-magic仅提供了一个from magic import magic
模块,而python-magic-bin也是一样。问题在于python-magic-bin有一个名为magic that imports the module magic.magic
的软件包,有点像内部细节,因此,后一个示例在python-magic-bin中有效,而在python-magic中无效。
来自python-magic文档:
magic