相关疑难解决方法(0)

在IPython中重新加载子模块

目前我正在开发一个包含子模块并使用numpy/scipy的python项目.Ipython用作交互式控制台.不幸的是,我对我现在使用的工作流程不是很满意,我将不胜感激.

在IPython中,框架由一个简单的import命令加载.但是,通常需要更改框架的一个子模块中的代码.此时已经加载了一个模型,我使用IPython与它进行交互.

现在,框架包含许多相互依赖的模块,即在最初加载框架时,主模块正在导入和配置子模块.只有在使用重新加载模块时才会执行对代码的更改reload(main_mod.sub_mod).这很麻烦,因为我需要使用完整路径单独重新加载所有已更改的模块.如果reload(main_module)还要重新加载所有子模块,但没有重新加载numpy/scipy 将是非常方便的..

python ipython

329
推荐指数
7
解决办法
12万
查看次数

使用pip安装包的多个版本

在我的应用程序中,我想使用:

  • packageA,这需要 packageX==1.3
  • packageB,这需要 packageX==1.4
  • packageX==1.5

如何安装packageX带pip的多个版本来处理这种情况?

python pip

63
推荐指数
2
解决办法
2万
查看次数

如何使用PIP安装具有不同名称的python包

使用PIP安装新的python包时,是否可以更改包名称,因为还有另一个包含相同名称的包?

或者,我如何更改现有包的名称?

python pip duplicates package

31
推荐指数
4
解决办法
7090
查看次数

linux bash脚本运行多个python

我有2个python脚本a.py和b.py,我想编写一个bash脚本,它将加载a.py而不是运行b.py,直到a.py完成它为止.简单地

#!/usr/bin/env bash
python a.py
python b.py
Run Code Online (Sandbox Code Playgroud)

但这很天真,检查a.py是否已完成......我该怎么做?

python linux bash

15
推荐指数
1
解决办法
2万
查看次数

在Python中递归地重新加载包(及其子模块)

在Python中,您可以按如下方式重新加载模块...

import foobar

import importlib
importlib.reload(foobar)
Run Code Online (Sandbox Code Playgroud)

这适用于.py文件,但对于Python包,它只会重新加载包而不是任何嵌套的子模块.

随着包:

  • foobar/__init__.py
  • foobar/spam.py
  • foobar/eggs.py

Python脚本:

import foobar

# assume `spam/__init__.py` is importing `.spam`
# so we dont need an explicit import.
print(foobar.spam)  # ok

import importlib
importlib.reload(foobar)
# foobar.spam WONT be reloaded.
Run Code Online (Sandbox Code Playgroud)

不建议这是一个错误,但有时重新加载包及其所有子模块是有用的.(例如,如果要在脚本运行时编辑模块).

在Python中以递归方式重新加载包有哪些好方法?

笔记:

  • 出于此问题的目的,假设最新的Python3.x

    (目前正在使用importlib)

  • 允许这可能需要对模块本身进行一些编辑.
  • 假设未使用通配符导入(from foobar import *),因为它们可能使重载逻辑复杂化.

python python-3.x

8
推荐指数
1
解决办法
2407
查看次数

标签 统计

python ×5

pip ×2

bash ×1

duplicates ×1

ipython ×1

linux ×1

package ×1

python-3.x ×1