将 Python 项目从 2.7 版本升级到 2.7.4

Posted

技术标签:

【中文标题】将 Python 项目从 2.7 版本升级到 2.7.4【英文标题】:Upgrading a Python Project from version 2.7 to 2.7.4 【发布时间】:2013-10-17 16:37:01 【问题描述】:

我有一个我继承的 Django“项目”,我正在 Eclipse 中开发它。在我的操作系统(Windows 7 32 位)上,我安装了 Python 2.7.4,同样适用于我的 virtualenv。但是,在我的项目(从 SVN 中提取)中,Python 版本仅为 2.7。

当我尝试创建另一个超级用户(我不知道原始超级用户名/密码)时,这会导致冲突:

无法导入 maxrepeat

如何升级位于以下位置的 python 版本:

c:\users\"username"\workspace\"project"\scripts

从 2.7 到 2.7.4?

抱歉,如果我遗漏了一些重要的细节,或者我是 Django/python 开发的新手,所以我提出了错误的问题。

编辑 在参考这些回复之前与一位朋友交谈(谢谢顺便说一句),他建议我将我的 virtualenv 中的“脚本”文件夹的内容复制到该文件夹​​:

c:\users\"username"\workspace\"project"\scripts

我这样做了,所以理论上,它们现在都从 python 版本 2.7.4 运行。

但是,当我运行脚本时

python manage.py createsuperuser

我得到以下 FULL Traceback:

回溯(最近一次通话最后): 文件“manage.py”,第 10 行,在 execute_from_command_line(sys.argv) 文件“C:\users\alecc\workspace\hub\lib\site-packages\django\core\management\__init__.py” ,第 453 行,在 execute_from_command_line 实用程序.execute() 文件“C:\users\alecc\workspace\hub\lib\site-packages\django\core\management\__init__.py” ,第 392 行,在执行中 self.fetch_command(子命令).run_from_argv(self.argv) 文件“C:\users\alecc\workspace\hub\lib\site-packages\django\core\management\__init__.py” ,第 263 行,在 fetch_command app_name = get_commands()[子命令] 文件“C:\users\alecc\workspace\hub\lib\site-packages\django\core\management\__init__.py” ,第 109 行,在 get_commands 中 应用程序 = settings.INSTALLED_APPS 文件“C:\users\alecc\workspace\hub\lib\site-packages\django\conf\__init__.py”,第 53 行, 在 __getattr__ self._setup(名称) 文件“C:\users\alecc\workspace\hub\lib\site-packages\django\conf\__init__.py”,第 48 行, 在 _setup self._wrapped = 设置(settings_module) 文件“C:\users\alecc\workspace\hub\lib\site-packages\django\conf\__init__.py”,第 134 行, 在初始化中 raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SE TTINGS_MODULE,e)) ImportError:无法导入设置“hub.settings”(它在 sys.path 上吗?):没有模块名称 d hub.settings

我检查了系统变量,并确定我的项目在 Python 系统路径上。我还检查了'django.contrib.auth'settings.pyfile 的INSTALLED_APPS 中启用。

编辑 2 许多其他帖子表明它是 Python 版本的交叉。但是,当我使用命令检查版本号时:

$scripts\python.exe --version

我为每个安装(项目和 virtualenv)获得 Python 2.7.4

【问题讨论】:

MAXREPEAT 大写吗? 这是完整的错误文本,还是您得到了回溯? 也许相关? ***.com/questions/16301735/… @MartijnPieters 是大写字母 @WayneWerner 抱歉,我最初没有放完整的回溯。我意识到这没有用!我已经在编辑中这样做了 【参考方案1】:

根据这些信息:

File "C:\users\alecc\workspace\hub\lib\site-packages\django\conf\__init__.py", line 134,
 in __init__
    raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SE
TTINGS_MODULE, e))
ImportError: Could not import settings 'hub.settings' (Is it on sys.path?): No module name
d hub.settings

看起来您的应用程序名为hub?这里的问题是它正在尝试导入hub.settings - 但它找不到它。因此,由于某种原因,您的 settings.py 不在路径上。

您可以通过编辑C:\users\alecc\workspace\hub\lib\site-packages\django\conf\__init__.py 来检查这一点,您可以在第 134 行之前的某处输入import sys; print(sys.path)。然后检查您的settings.py 文件所在的路径是否可用。如果是这样,那么正在发生其他奇怪的事情。

如果没有,请继续从__init__ 中提取这些行,然后尝试从您的设置文件所在的同一目录中运行manage

【讨论】:

谢谢!如果我有必要的代表,我会给你投赞成票。 我的应用程序被称为集线器你是对的(我应该解释一下)。试图检查settings.py 文件的位置让我意识到它正在寻找应用程序中的一个文件夹,称为集线器。因此,它试图找到一个文件hub/hub/__init__.py,但找不到。令人讨厌的是,该错误并未表明这一点。我也没有意识到必须在根目标中拥有这个以应用程序本身命名的文件夹,其中包含一个___init__.py 文件。我刚刚创建了它,然后......瞧! 确实实际上表明了它,只是以一种更深奥的方式;)确切地知道你想要做什么是一个难题,所以它给出了它可以给出的最佳答案 - 它试图在某个地方import hub.settings(或者可能是__import__('hub.settings'))。 Python 真的不知道 Django,或者预期的项目结构应该是什么样子——只知道导入。很高兴它有帮助!

以上是关于将 Python 项目从 2.7 版本升级到 2.7.4的主要内容,如果未能解决你的问题,请参考以下文章

python从2.7升级到3.5 需要主要的问题

Centos将python 2.6 升级到 2.7

Python升级版本2.6到2.7

python 2.7 - 3.5 升级之路 : 准备阶段开发环境 -- pip3, vitualEnv, pycharm

linux升级python到2.7版本

centos6默认python2.6升级2.7 卸载python2.6升级2.7