相关疑难解决方法(0)

如何加载文件夹中的所有模块?

有人能为我提供一个导入整个模块目录的好方法吗?
我有这样的结构:

/Foo
    bar.py
    spam.py
    eggs.py
Run Code Online (Sandbox Code Playgroud)

我尝试通过添加__init__.py和执行将其转换为包,from Foo import *但它没有按照我希望的方式工作.

python python-import

245
推荐指数
13
解决办法
22万
查看次数

`from ... import` vs`import .`

我想知道代码片段之间是否有任何区别

from urllib import request
Run Code Online (Sandbox Code Playgroud)

和片段

import urllib.request
Run Code Online (Sandbox Code Playgroud)

或者它们是否可以互换.如果它们是可互换的,那就是"标准"/"首选"语法(如果有的话)?

谢谢!

python syntax import module python-import

230
推荐指数
3
解决办法
31万
查看次数

Image.open()无法识别图像文件 - Python?

我在Visual Studio 2013中运行Python 2.7.代码以前在Spyder中运行正常,但是当我运行时:

import numpy as np
import scipy as sp
import math as mt
import matplotlib.pyplot as plt
import Image
import random

# (0, 1) is N
SCALE = 2.2666 # the scale is chosen to be 1 m = 2.266666666 pixels
MIN_LENGTH = 150 # pixels

PROJECT_PATH = 'C:\\cimtrack_v1'
im = Image.open(PROJECT_PATH + '\\ST.jpg')
Run Code Online (Sandbox Code Playgroud)

我最终得到以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\cimtrack_v1\PythonApplication1\dr\trajgen.py", line 19, in <module>
    im = Image.open(PROJECT_PATH + '\\ST.jpg') …
Run Code Online (Sandbox Code Playgroud)

python python-imaging-library

41
推荐指数
5
解决办法
10万
查看次数

你如何使用Fortran 90模块数据

假设您有一个包含大量变量,函数和子例程的Fortran 90模块.在您的USE陈述中,您遵循哪种惯例:

  1. 使用, only :语法显式声明您正在使用哪些变量/函数/子例程,例如 USE [module_name], only : variable1, variable2, ...
  2. 插入毯子USE [module_name]

一方面,该only子句使代码更加冗长.但是,它会强制您在代码中重复自己,如果您的模块包含许多变量/函数/子例程,那么事情就会开始变得难以驾驭.

这是一个例子:

module constants
  implicit none
  real, parameter :: PI=3.14
  real, parameter :: E=2.71828183
  integer, parameter :: answer=42
  real, parameter :: earthRadiusMeters=6.38e6
end module constants

program test
! Option #1:  blanket "use constants"
!  use constants
! Option #2:  Specify EACH variable you wish to use.
  use constants, only : PI,E,answer,earthRadiusMeters
  implicit none …
Run Code Online (Sandbox Code Playgroud)

fortran module conventions fortran90

36
推荐指数
3
解决办法
5万
查看次数

在Python中的单独文件中调用函数

我看过以下帖子:

导入模块或从模块导入

来自file.py import*

我只是想知道如何知道何时将我的代码分解为多个文件而不是将多个函数放在一个文件中?我的具体问题是我有一个100行的函数,我想在另一个函数的for循环中调用.此外,什么时候脚本执行?导入它们时,还是在调用它们时?

注意:以下答案已完全解决了问题.谢谢!

python function

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

Python:在其中的模块和类之间共享全局变量

我知道可以在Python中跨模块共享全局变量.但是,我想知道这可能的程度和原因.例如,

global_mod.py

x = None
Run Code Online (Sandbox Code Playgroud)

mid_access_mod.py

from global_mod import *

class delta:
    def __init__(self):
        print x
Run Code Online (Sandbox Code Playgroud)

bot_modif_mod.py

import mid_access_mod
import global_mod

class mew:
    def __init__(self):
        global_mod.x = 5

def main():
    m = mew()
    d = mid_access_mod.delta()
Run Code Online (Sandbox Code Playgroud)

即使所有模块共享全局变量x,也会打印None.为什么会这样?似乎x在mid_access_mod.py中被评估,然后由mew()在bot_modif_mod.py中分配.

python scope module global-variables

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

Pythonic方法解决循环导入语句?

我只是继承了一些让我感到不安的代码:有一个测试库,其中包含与我们网站上的网页相对应的类,每个网页类都有自动化该页面功能的方法.

有一些方法可以单击页面之间的链接,返回链接页面的类.这是一个简化的例子:

文件homePageLib.py:

class HomePage(object):
    def clickCalendarLink(self):
        # Click page2 link which navigates browswer to page2
        print "Click Calendar link"
        # Then returns the page2 object
        from calendarLib import CalendarPage
        return CalendarPage()
Run Code Online (Sandbox Code Playgroud)

文件calendarLib.py:

class CalendarPage(object):
    def clickHomePageLink(self):
        # Click page1 link which navigates browswer to page1
        print "Click Home Page link"
        # Then return the page2 object
        from homePageLib import HomePage
        return HomePage()
Run Code Online (Sandbox Code Playgroud)

然后,这允许脚本文件单击页面并将该对象作为该方法的返回值,这意味着脚本作者不必在浏览站点时保持实例化新页面.(我觉得这是一个奇怪的设计,但我不能完全理解为什么,除此之外,有一个名为'clickSomeLink'的方法并返回结果页面的对象似乎很奇怪.)

以下脚本说明了脚本如何在站点中导航:(我插入print page以显示页面对象如何更改)

脚本文件:

from homePageLib import HomePage

page = HomePage()    
print page
page = …
Run Code Online (Sandbox Code Playgroud)

python pageobjects

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

import modx和modx import*有什么区别?

如果我要导入一些名为modx的模块,那么与说法有何不同

from modx import *
Run Code Online (Sandbox Code Playgroud)

不是所有内容都是从每种方式导入的吗?这只是为了澄清而在python中.

python import module

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

"导入X"和"来自X导入*"之间的区别?

在Python中,我不太清楚以下两行代码之间的区别:

import X
Run Code Online (Sandbox Code Playgroud)

要么

from X import *
Run Code Online (Sandbox Code Playgroud)

难道他们都不是从模块X导入所有内容吗?有什么不同?

python import difference

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

在Python中使用`from ... import ...`语法背后的推理

我总是想知道为什么从模块导入特定对象的语法from module import x, y, z不是import x, y, z from module.我不是母语,但后者不是更正确/更自然吗?

那么,从第一个开始的原因是什么?它只是简化语法(需要更少的前瞻)?是否试图使两种进口在视觉上更加鲜明?或者这是其中一种显而易见的方式,"除非你是荷兰人,否则一开始并不明显"?;)

python syntax import

14
推荐指数
4
解决办法
8298
查看次数