我有一个目录结构:
../POC/mud/
client/
common/
server/
我正在尝试使用以下导入:
from mud.server import config from mud.common.lib import util
但是当我尝试导入配置时,我收到一个错误:
Python 2.6.6 (r266:84292, Sep 15 2010, 16:22:56) [GCC 4.4.5] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from mud.server import config Traceback (most recent call last): File "", line 1, in ImportError: No module named mud.server >>> from mud.common.lib import util Traceback (most recent call last): File "", line 1, in ImportError: No module named mud.common.lib >>>
我是否需要在某个位置才能使导入工作,或者需要在操作系统上编译模块?这些"泥"模块只是python .py文件的集合
每当我尝试将文件导入python时,都会出现此错误(或类似):
Traceback (most recent call last):
File "C:/Python33/My Files/username save.py", line 1, in <module>
import keyring.py
ImportError: No module named 'keyring'
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建一个密码存储程序,我正在寻找保持密码安全的好方法,有人说使用导入密钥环,所以我做了,除了它,它永远不会工作.我一定是做错了什么,但每当我为python寻找任何东西时,它都不适合我.几乎就像载荷已经多年来一直在变化.
和想法?
我最近发现了一些有趣的行为让我想知道对象如何知道存在哪些全局变量.例如,假设我有一个文件"test.py":
globalVar = 1
toDelete = 2
class Test(object):
classVar = 3
def runTest1(self):
print globalVar
print toDelete
print missingVar
def runTest2(self):
print self.classVar
print toCreate
print missingVar
Run Code Online (Sandbox Code Playgroud)
然后在交互式shell中我这样做:
>>> import test
>>> tester = test.Test()
>>> tester.runTest1()
1
2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "test.py", line 10, in runTest1
print missingVar
NameError: global name 'missingVar' is not defined
>>> tester.runTest2()
3
Traceback (most recent call last):
File "<stdin>", line 1, in <module> …Run Code Online (Sandbox Code Playgroud) python python-module global-variables python-import python-2.7
我在我的项目中使用自定义日志记录模块.如果它不可用,我想用假人代替它而不是提高ImportError.
这是当前执行此操作的代码:
try:
import logger
except ImportError:
print 'Couldn\'t load logger'
class DummyLogger(object):
def __init__(self):
pass
def log(self, image):
pass
logger = DummyLogger()
Run Code Online (Sandbox Code Playgroud)
我不认为这是一个优雅的解决方案.它确实有效,但它并不好.有没有更好的办法?
这个问题困扰了我好几天.
我有两个文件,helpers.py和launcher.py.
在helpers.py我已经定义了函数hello(),它打印"你好".
我想打电话hello()来launcher.py.
这就是我写的launcher.py:
from helpers import hello
....
helpers.hello()
Run Code Online (Sandbox Code Playgroud)
但是当我运行它时,我得到了这个:
from helpers import hello
ImportError: No module named helpers
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
我尝试了两种方式:
from helpers import hello
hello()
Run Code Online (Sandbox Code Playgroud)
和
import helpers
helpers.hello()
Run Code Online (Sandbox Code Playgroud)
但仍然是这个错误:
import helpers
ImportError: No module named 'helpers'
Run Code Online (Sandbox Code Playgroud)我认为终端的CLASSPATH应该有问题.
我有一个用 Python 编写的脚本。作者决定使用仅在 Python 3 中可用的新功能,因此我不得不更新我的版本。
现在我遇到了麻烦,因为脚本在导入语句上崩溃,所以我决定进行一些调试。我得出的结论是,我的 Python 3 无法Image从PIL.
在 Python 2 中:
Python 2.7.10 (default, Aug 22 2015, 20:33:39)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from PIL import Image
Run Code Online (Sandbox Code Playgroud)
不会给出错误,但在 Python 3 中:
Python 3.5.0 (v3.5.0:374f501f4567, Sep 12 2015, 11:00:19)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from …Run Code Online (Sandbox Code Playgroud) 我导入一些模块Foo并使用Foo该模块中定义的类.该类具有f调用g该模块Foo本身导入的另一个函数的函数module_with_g.我想在实例化时重新定义g该f用法的定义Foo.这里有3个文件显示了这种情况.
Foo.py
from module_with_g import g
class Foo:
def f(self):
x = 'bar'
g(x)
Run Code Online (Sandbox Code Playgroud)
module_with_g.py
def g(x):
print(x + x)
Run Code Online (Sandbox Code Playgroud)
module_with_modified_Foo_f.py
import Foo
def new_g(x):
print(x + x + x)
if __name__ == '__main__':
foo = Foo.Foo()
foo.f()
Run Code Online (Sandbox Code Playgroud)
运行最后一个脚本给出barbar.我想要的是让我们foo.f使用自己的功能而不是它g,我希望得到它barbarbar.
我自己的尝试是尝试使用装饰器以某种方式重新定义foo.f,但我没有任何运气.
module_with_modified_Foo_f.py
import Foo
def new_g(x):
print(x + x + x)
def redefine_f(f): …Run Code Online (Sandbox Code Playgroud) 我有一个名为的包A:
A/
__init__.py
_test.pyx
Run Code Online (Sandbox Code Playgroud)
我有另一个包的来源B:
B/
__init__.py
_wrapper.pxd
_other.pxd
_other.pyx
Run Code Online (Sandbox Code Playgroud)
_wrapper.pxd包装C库.我想cimport _wrapper.pxd参加A/_test.pyx
所以我这样做_test.pyx:
from B cimport _wrapper
Run Code Online (Sandbox Code Playgroud)
我setup.py看起来像这样:
ext_modules = cythonize([
Extension("A._test", ["src/A/_test.pyx"], include_dirs=["/path/to/B", "."])])
Run Code Online (Sandbox Code Playgroud)
当我编译时,我会B.pxd not found遇到一堆错误.
如何从另一个包中导入cython模块到我的包中?
我有几个模块,在开发Sublime Text软件包时,我想重新加载而不必重新启动Sublime Text。
我正在运行Sublime Text内部版本3142,该版本python3.3连续运行其软件包/插件。但是,在开发插件时,我将添加到path的第三方模块导入为:
import os
import sys
def assert_path(module):
"""
Import a module from a relative path
/sf/ask/19546621/
"""
if module not in sys.path:
sys.path.insert( 0, module )
current_directory = os.path.dirname( os.path.realpath( __file__ ) )
assert_path( os.path.join( current_directory, 'six' ) ) # https://github.com/benjaminp/six
import six
Run Code Online (Sandbox Code Playgroud)
但是,当我编辑模块的源代码时,six我需要再次关闭并打开Sublime Text,否则Sublime Text无法获取对sixpython模块的更改。
到目前为止我尝试过的一些代码:
print( sys.modules )
import git_wrapper
imp.reload( find_forks )
imp.reload( git_wrapper )
imp.reload( sys )
Run Code Online (Sandbox Code Playgroud)
对于项目,我需要从可变数据源导入DICOM文件。我将在PyCharm中从事该项目,因为我最终将迭代代码,最终产品将是程序。我得到的错误如下:
2017-10-10 08:58:16.307 Python [1010:26876]-[NSApplication _setup:]:无法识别的选择器已发送到实例0x105154320
2017-10-10 08:58:16.311 Python [1010:26876] ***由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'-[NSApplication _setup:]:无法识别的选择器已发送至实例0x105154320'
***首先抛出调用堆栈:
(
0 CoreFoundation 0x00007fff9e92757b __exceptionPreprocess + 171
1 libobjc.A.dylib 0x00007fffb3b801da objc_exception_throw + 48
2 CoreFoundation 0x00007fff9e9a7f14 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132
3 CoreFoundation 0x00007fff9e89ac93 ___forwarding___ + 1059
4 CoreFoundation 0x00007fff9e89a7e8 _CF_forwarding_prep_0 + 120
5 Tk 0x000000010438cc02 TkpInit + 471
6 Tk 0x00000001043082a9 Tk_Init + 1794
7 _tkinter.cpython-36m-darwin.so 0x00000001041e0dfd Tcl_AppInit + 77
8 _tkinter.cpython-36m-darwin.so 0x00000001041de849 _tkinter_create + 889
9 Python 0x000000010006a7b8 _PyCFunction_FastCallDict + 552
10 Python 0x00000001000f4164 call_function + …Run Code Online (Sandbox Code Playgroud) python ×10
python-import ×10
python-2.7 ×2
python-3.x ×2
cython ×1
decorator ×1
import ×1
importerror ×1
module ×1
pillow ×1
pycharm ×1
python-3.5 ×1