标签: python-module

从脚本导入已安装的包会引发"AttributeError:module has no attribute"或"ImportError:无法导入名称"

我有一个名为的脚本requests.py导入请求包.该脚本无法访问包中的属性,也无法导入它们.为什么这不起作用,我该如何解决?

以下代码提出了一个问题AttributeError.

import requests

res = requests.get('http://www.google.ca')
print(res)
Run Code Online (Sandbox Code Playgroud)
Traceback (most recent call last):
  File "/Users/me/dev/rough/requests.py", line 1, in <module>
    import requests
  File "/Users/me/dev/rough/requests.py", line 3, in <module>
    requests.get('http://www.google.ca')
AttributeError: module 'requests' has no attribute 'get'
Run Code Online (Sandbox Code Playgroud)

以下代码提出了一个问题ImportError.

from requests import get

res = get('http://www.google.ca')
print(res)
Run Code Online (Sandbox Code Playgroud)
Traceback (most recent call last):
  File "requests.py", line 1, in <module>
    from requests import get
  File "/Users/me/dev/rough/requests.py", line 1, in <module>
    from requests import get
ImportError: cannot import name 'get' …
Run Code Online (Sandbox Code Playgroud)

python exception python-module shadowing

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

ImportError:无法从 Python 中的“集合”导入名称“Iterable”

在 Mac 上使用 Python 和 Atom 进行工作。代码:

from rubik.cube import Cube
from rubik_solver import utils
Run Code Online (Sandbox Code Playgroud)

完整错误:

Traceback (most recent call last):
  File "/Users/Audey/Desktop/solver.py", line 2, in <module>
    from rubik_solver import utils
  File "/Users/Audey/Library/Python/3.10/lib/python/site-packages/rubik_solver/utils.py", line 4, in <module>
    from past.builtins import basestring
  File "/Users/Audey/Library/Python/3.10/lib/python/site-packages/past/builtins/__init__.py", line 43, in <module>
    from past.builtins.noniterators import (filter, map, range, reduce, zip)
  File "/Users/Audey/Library/Python/3.10/lib/python/site-packages/past/builtins/noniterators.py", line 24, in <module>
    from past.types import basestring
  File "/Users/Audey/Library/Python/3.10/lib/python/site-packages/past/types/__init__.py", line 25, in <module>
    from .oldstr import oldstr
  File "/Users/Audey/Library/Python/3.10/lib/python/site-packages/past/types/oldstr.py", line 5, in …
Run Code Online (Sandbox Code Playgroud)

python python-module

40
推荐指数
3
解决办法
10万
查看次数

Python:包中的"私有"模块

我有一个封装mypack与模块mod_a,并mod_b在里面.我打算包装本身并mod_a自由进口:

import mypack
import mypack.mod_a
Run Code Online (Sandbox Code Playgroud)

但是,我想保留mod_b专属用途mypack.那是因为它的存在仅仅是为了组织后者的内部代码.

我的第一个问题是,在Python编程中接受这样的"私有"模块是否可以接受?

如果是,我的第二个问题是,向客户传达这一意图的最佳方式是什么?我是否在名称前加下划线(即_mod_b)?或者声明一个子包private并将所有这些模块放在那里是一个好主意吗?

python python-module

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

是否可以列出模块中的所有功能?

我以这种格式定义了一个.py文件:

foo.py

def foo1(): pass
def foo2(): pass
def foo3(): pass
Run Code Online (Sandbox Code Playgroud)

我从另一个文件导入它:

main.py

from foo import * 
# or
import foo
Run Code Online (Sandbox Code Playgroud)

是否可以列出所有功能名称,例如["foo1", "foo2", "foo3"]


谢谢你的帮助,我为我想要的东西上了课,如果你有建议,请评论

class GetFuncViaStr(object):
    def __init__(self):
        d = {}
        import foo
        for y in [getattr(foo, x) for x in dir(foo)]:
            if callable(y):
               d[y.__name__] = y
    def __getattr__(self, val) :
        if not val in self.d :
           raise NotImplementedError
        else:
           return d[val] 
Run Code Online (Sandbox Code Playgroud)

python python-module

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

使用Python阅读Microsoft Access数据库需要什么?

如何在Python中访问Microsoft Access数据库?用SQL?

我会优先选择适用于Linux的解决方案,但我也可以选择Windows.

我只需要读访问权限.

python linux ms-access python-module

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

找到'fibo.py'的规范时出错(<class'NameError'>:'module'对象没有属性'__path__')

我在一个fibo.py文件中有一个模块,它具有以下功能 -

#fibonacci numbers module

def fib(n):    # write Fibonacci series up to n
    a, b = 0, 1
    while b < n:
        print(b, end=' ')
        a, b = b, a+b
    print()

def fib2(n): # return Fibonacci series up to n
    result = []
    a, b = 0, 1
    while b < n:
        result.append(b)
        a, b = b, a+b
    return result
Run Code Online (Sandbox Code Playgroud)

现在当我从cli python3运行模块时 -

> python3 -m fibo.py
Run Code Online (Sandbox Code Playgroud)

我收到了错误

Error while finding spec for 'fibo.py' (<class 'AttributeError'>:
'module' …
Run Code Online (Sandbox Code Playgroud)

python-module python-3.x

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

是否有用于打开SPSS文件的Python模块?

是否有用于打开IBM SPSS(即.sav)文件的Python模块?如果最新的东西不需要任何额外的DLL文件/库,那将是很棒的.

python statistics python-module dataset spss

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

使用pip安装nose,但是bash无法识别mac上的命令

我正试图在我的计算机上安装鼻子来学习"学习Python困难之路"教程,但似乎无法让它工作.我正在使用pip安装:

$ pip install nose
Run Code Online (Sandbox Code Playgroud)

我回来了:

Requirement already satisfied (use --upgrade to upgrade): nose in /usr/local/lib/python2.7/site-packages
Cleaning up...
Run Code Online (Sandbox Code Playgroud)

但是,当我运行命令nosetests时,我得到:

-bash: nosetests: command not found
Run Code Online (Sandbox Code Playgroud)

我认为我的PATH有问题,老实说我不知道​​.任何帮助将不胜感激!

python python-module nose nosetests python-2.7

29
推荐指数
4
解决办法
4万
查看次数

如何在Python模块中正确使用相对或绝对导入?

在Python中使用相对导入有一个缺点,您将无法再将模块作为独立模块运行,因为您将获得异常: ValueError: Attempted relative import in non-package

# /test.py: just a sample file importing foo module
import foo
...

# /foo/foo.py:
from . import bar
...
if __name__ == "__main__":
   pass

# /foo/bar.py: a submodule of foo, used by foo.py
from . import foo
...
if __name__ == "__main__":
   pass
Run Code Online (Sandbox Code Playgroud)

我应该如何修改样本代码,以便能够执行所有:test.py,foo.pybar.py

我正在寻找一个适用于python 2.6+(包括3.x)的解决方案.

python module packages python-module python-import

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

如何定义Python模块中的__name__变量?

我知道标准的例子:如果你直接执行一个模块,那么它的__name__全局变量定义为"__main__".但是,在文档中没有任何地方可以找到__name__在一般情况下如何定义的精确描述.该模块的文件说...

在模块中,模块的名称(作为字符串)可用作全局变量的值__name__.

......但是"模块名称"是什么意思?它只是模块的名称(已.py删除的文件名),还是包含完全限定的包名称?

如何__name__确定Python模块中变量的值?对于奖励积分,请准确指出在Python源代码中执行此操作的位置.

python python-module python-internals

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