Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当本地为Django 1.7/Postgres 9.3时,如何调试运行在Django 1.3/Postgres 8.4中服务器上的应用程序?_Python_Django_Macos_Postgresql - Fatal编程技术网

Python 当本地为Django 1.7/Postgres 9.3时,如何调试运行在Django 1.3/Postgres 8.4中服务器上的应用程序?

Python 当本地为Django 1.7/Postgres 9.3时,如何调试运行在Django 1.3/Postgres 8.4中服务器上的应用程序?,python,django,macos,postgresql,Python,Django,Macos,Postgresql,作为Django/Python新手,我应该尝试在运行4年前的软件版本的服务器上进行调试,尝试在本地重新创建旧的软件安装,还是尝试在本地Mac OS X 10.9.5上运行当前版本的Django/Python/Postgres/PostGIS中的软件 背景: 在一个项目中,我本应该只是将数据加载到Postgres/PostGIS中,我需要调试一个2010年的Django/Postgres/PostGIS项目为什么会出错。我是一个LAMP开发人员,从来没有使用过Django,也没有在Python中做

作为Django/Python新手,我应该尝试在运行4年前的软件版本的服务器上进行调试,尝试在本地重新创建旧的软件安装,还是尝试在本地Mac OS X 10.9.5上运行当前版本的Django/Python/Postgres/PostGIS中的软件

背景:

在一个项目中,我本应该只是将数据加载到Postgres/PostGIS中,我需要调试一个2010年的Django/Postgres/PostGIS项目为什么会出错。我是一个LAMP开发人员,从来没有使用过Django,也没有在Python中做过很多工作,但我已经能够在服务器上运行一个临时站点,并进行了一两次更改。我认为在Mac OS X 10.9.5上进行本地调试是有意义的。所以我用自制软件安装了Django 1.7和Postgres 9.3。从版本差异来看,我担心现在尝试迁移和升级项目比尝试在服务器上运行的临时站点实例上调试项目更麻烦


FWIW,我知道我想研究的代码行(似乎一个对象没有从db中正确加载,因为它在db中),但我不确定要使用哪种类型的echo语句。我喜欢用IDE来检查东西。这个项目有点像孤儿,因为它是开发人员的第一个专业项目,而开发人员不再能够提供帮助。当然,最后期限是上周(

我认为最简单的方法是查看如何使用并对您怀疑是问题原因的函数设置一些单元测试。通过使用unittest和mock对象,您可以控制现有代码如何与Django和Postgres对象交互,并通过设置预期的返回值来允许版本差异

使用mock object,您可以模拟现有Python对象的全部或部分,从而减少开发环境所需的依赖关系。根据代码的结构,您可能根本不需要安装Django或Postgres或Web服务器。详细解释了mock object

尽管时间紧迫,但您可能会做得比为整个项目设置单元测试更糟糕,未来的开发人员将感谢您

就调试而言,我个人认为还不够,这是一个交互式命令行调试器,可以与unittest一起使用,以确定是哪部分代码导致了问题


如果您确实需要安装Django和Postgres,我建议您看看哪个版本允许您为Python设置虚拟环境。这样,您就可以只安装所需的特定依赖项,而不会干扰全局系统范围的安装。您还可以安装早期版本的包件,这些包件可以实现emul检查现有系统的状态。

我认为最简单的方法是查看如何使用并对您怀疑是问题原因的函数设置一些单元测试。通过使用单元测试和模拟对象,您可以控制现有代码如何与Django和Postgres对象交互,并通过设置exp被删除的返回值

使用mock object,您可以模拟现有Python对象的全部或部分,从而减少开发环境所需的依赖关系。根据代码的结构,您可能根本不需要安装Django或Postgres或Web服务器。详细解释了mock object

尽管时间紧迫,但您可能会做得比为整个项目设置单元测试更糟糕,未来的开发人员将感谢您

就调试而言,我个人认为还不够,这是一个交互式命令行调试器,可以与unittest一起使用,以确定是哪部分代码导致了问题


如果您确实需要安装Django和Postgres,我建议您看看哪个版本允许您为Python设置虚拟环境。这样,您就可以只安装所需的特定依赖项,而不会干扰全局系统范围的安装。您还可以安装早期版本的包件,这些包件可以实现emul删除现有系统的状态。

生产环境和开发环境之间的差异可能会导致很多问题


我建议您使用一种工具,如设置在虚拟机内部运行的开发环境,以镜像您的生产服务器。

生产环境和开发环境之间的差异可能会导致很多麻烦


我建议您使用一种工具,例如在镜像生产服务器的虚拟机内设置运行的开发环境。

用于模拟必要的Django版本。PostgreSQL更为复杂,理论上,您可以同时运行第二个实例和所需版本,但这也会导致e冲突。最好让它在另一台机器上运行(虚拟或物理)并通过您的本地网络访问它。

用于模拟必要的Django版本。PostgreSQL更为复杂,从理论上讲,您可以让第二个实例与所需版本同时运行,但这也可能导致非常微妙的冲突。最好让它在另一台机器上运行(虚拟或物理)通过您的本地网络访问它。

他担心的是Django/Postgres的版本,而不是如何调试程序。我的建议是选择版本无关,或者使用virtualenv作为模拟现有环境的替代方案。我对OP的理解是,他正在寻找一种用他自己的语言进行调试的方法不熟悉。但我很想看看你的建议。看起来他远远落后于计划,并且已经知道问题所在。安装正确版本的Django/Postgres并删除som