加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 为什么一个旧的.pyc文件破解Django?

发布时间:2020-12-16 23:37:46 所属栏目:Python 来源:网络整理
导读:我今天使用git提取了最新的代码,我收到以下错误: ImportError at /cannot import name Like 这可能与循环导入有关.我检查了回溯: Traceback:File "/Library/Python/2.7/site-packages/Django-1.4.1-py2.7.egg/django/core/handlers/base.py" in get_respon
我今天使用git提取了最新的代码,我收到以下错误:
ImportError at /
cannot import name Like

这可能与循环导入有关.我检查了回溯:

Traceback:
File "/Library/Python/2.7/site-packages/Django-1.4.1-py2.7.egg/django/core/handlers/base.py" in get_response
  101.                             request.path_info)
File "/Library/Python/2.7/site-packages/Django-1.4.1-py2.7.egg/django/core/urlresolvers.py" in resolve
  298.             for pattern in self.url_patterns:
File "/Library/Python/2.7/site-packages/Django-1.4.1-py2.7.egg/django/core/urlresolvers.py" in url_patterns
  328.         patterns = getattr(self.urlconf_module,"urlpatterns",self.urlconf_module)
File "/Library/Python/2.7/site-packages/Django-1.4.1-py2.7.egg/django/core/urlresolvers.py" in urlconf_module
  323.             self._urlconf_module = import_module(self.urlconf_name)
File "/Library/Python/2.7/site-packages/Django-1.4.1-py2.7.egg/django/utils/importlib.py" in import_module
  35.     __import__(name)
File "/Users/Desktop/python/mystuff/Project/Project/urls.py" in <module>
  7. admin.autodiscover()
File "/Library/Python/2.7/site-packages/Django-1.4.1-py2.7.egg/django/contrib/admin/__init__.py" in autodiscover
  29.             import_module('%s.admin' % app)
File "/Library/Python/2.7/site-packages/Django-1.4.1-py2.7.egg/django/utils/importlib.py" in import_module
  35.     __import__(name)

在那里看到的唯一代码可能是导致问题的是urls.py.那里有以下代码:

from django.contrib import admin
admin.autodiscover()

所以在这个时候,我注意到我们以前写过的admin.py文件在最新的合并中被删除,但是admin.pyc仍然存在.删除.pyc文件继续修复循环导入错误,现在似乎工作正常.

我的问题是:这里究竟发生了什么? Git被配置为忽略所有pyc文件,所以在合并之后,即使删除了.py,.pyc也被卡住了.但是,如果.py本身被删除,python应该不够聪明,不要尝试调用.pyc中的任何编译代码?

解决方法

不,事实上,Python最好使用.pyc文件,只有访问.py文件,如果它存在,b)比.pyc文件更新.

这允许您在没有源代码的情况下以编译形式分发Python应用程序(尽管它不是代码“混淆”技术).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读