标签: python-import

如何从python中的其他目录导入模块?

这是我的目录树

Game/
   a/
      1.py
      ...
   b/
      2.py
Run Code Online (Sandbox Code Playgroud)

在 2.py 中,我希望从 1.py 导入函数显示。首先我将两个文件放在同一个文件夹中没有问题。但是如何从其他位置导入?

python python-import python-2.7

0
推荐指数
1
解决办法
1979
查看次数

python是否在导入时执行导入

假设我有一个名为module1以下的模块:

def main():
    print 'K DawG'

main()
Run Code Online (Sandbox Code Playgroud)

module2只有这一行:

import module1
Run Code Online (Sandbox Code Playgroud)

基本上什么情况是,当我运行module1不会打印K DawG预期,当我运行moudle2,除非我明确指出module1.main()不应该做任何事情,但它也打印K DawG

为什么会这样?python是否运行导入期间导入的脚本?如果是这样,我怎么能阻止这种情况发生?

python python-import

0
推荐指数
1
解决办法
69
查看次数

有人可以向我解释我在这个Python代码中做错了什么并帮助我解决这个问题?

这是错误:

    Traceback (most recent call last):
      File "/home/endergreen/PyOS/SHOE/C.pyx", line 24, in <module>
        x.execute()
    AttributeError: 'str' object has no attribute 'execute'
Run Code Online (Sandbox Code Playgroud)

这是一组代码:

    #!/usr/bin/env python
    import os as os
    import sys as sys
    import time as time
    import DefaultX as x

    def setup():
        execfile ("Setup.pyx")
        print ("Running...")
    def start():
        execfile ("/HDD/BOOT.pyrx")
        print ("Running...")
    def end():
        print ("Stopping...")
        time.sleep (3)

    x.machine_start
    x = raw_input (">>>")
    if x == 'setup':
        x.setup()
    if x == 'start':
        x.start()
    if x == 'execute':
        x.execute()
    if x == …
Run Code Online (Sandbox Code Playgroud)

python function python-import

0
推荐指数
1
解决办法
60
查看次数

尝试导入套接字时出错?

我最近安装了 python、ipython 和 pip,使用 pip 我安装了 socket 库,还有很多其他的,现在我无法在通过 cmd 运行 python 程序时导入 socket,但我可以使用 ipython,当我运行 ipython 时我导入套接字一切正常,现在我编写了一个简单的脚本,名为“tcp.py”,它包含的只是以下行

进口插座

Traceback (most recent call last):
 File "C:\dir\desktop\tcp.py", line 1, in <module>
  import socket
 File "C:\dir\desktop\socket.py", line 1, in <module>
  socket
NameError: name 'socket' is not defined
Run Code Online (Sandbox Code Playgroud)

知道如何解决这个问题吗?

python sockets networking ipython python-import

0
推荐指数
1
解决办法
6782
查看次数

无法导入 keras.initializers

我已将所有必要的模块从 keras 导入 jupyter notebook

from keras.preprocessing.text import Tokenizer
from keras.preprocessing.sequence import pad_sequences
from keras.models import Sequential
from keras.layers import Embedding, Dense, Dropout, Reshape, Merge, 
BatchNormalization, TimeDistributed, Lambda, Activation, LSTM, Flatten, 
Convolution1D, GRU, MaxPooling1D
from keras.regularizers import l2
from keras.callbacks import Callback, ModelCheckpoint, EarlyStopping
from keras import initializers
from keras import backend as K
from keras.optimizers import SGD
Run Code Online (Sandbox Code Playgroud)

但收到错误信息

ImportErrorTraceback (most recent call last)
<ipython-input-104-b13df7676198> in <module>()
 16 from keras.regularizers import l2
 17 from keras.callbacks import Callback, ModelCheckpoint, EarlyStopping
---> …
Run Code Online (Sandbox Code Playgroud)

python-import importerror keras keras-layer

0
推荐指数
1
解决办法
8220
查看次数

Python 导入、utils 文件以及如何组合它们

在我们的项目中,有一个utils.py文件为多个文件(DRY)提供了功能。

不用说这是如何完成的,但我会注意以防万一不明白,在这些文件中我们import utils使用必要的功能。

在开发过程中,我们的一位开发人员上传了一个 PR,他在utils.py文件中添加了多项功能,这是其中之一:

list_dir(directory):
    return os.listdir(directory)
Run Code Online (Sandbox Code Playgroud)

当我们问他为什么写这个函数时(只是import os在你需要的文件中,并使用os.listdir

他说:

  1. 他在几个文件中需要这个功能
  2. 为什么他会import os在这些文件中使代码变得丑陋(然后imports对于外部模块的每一行使用更多,然后imports在文件顶部有数千个)
  3. import utils 已经存在于那些文件中
  4. 而且,import os 已经存在于utils.py文件中

不用说,我们都知道 Python 对模块做了一次性导入,这里的问题是不同的:

什么更叫 Pythonic ?当有一行(可能是两行)函数时,只需将模块导入需要该函数的文件中(虽然看起来代码变得丑陋),或者将其写入utils.py. ?

python import python-import

0
推荐指数
1
解决办法
5663
查看次数

如何在另一个函数的中间实现覆盖函数调用?

我正在编写一个Python3程序,我需要能够动态覆盖某些方法.我的文件夹结构更像是:

./
prog.py
methods/
  add.py
  minus.py
Run Code Online (Sandbox Code Playgroud)

prog.py我想调用一个calc()add.py和中定义的函数minus.py.我希望代码可以像以下一样工作:

def prog('foo'):
    from method.foo import calc
    calc()
Run Code Online (Sandbox Code Playgroud)

但是在函数中间导入似乎很糟糕,可能会减慢整个程序的速度.有没有可以达到同样效果的解决方法?

我试图变得灵活,以便稍后可以添加更多方法,因此我避免使用if语句并立即导入所有模块.

python import python-import

0
推荐指数
1
解决办法
46
查看次数

无法在 jupyter 中导入 python 包

我有以下问题。我通过conda install rpy2在我的 virtualenv 中安装了 rpy2 。现在,如果我运行,我可以在终端中导入这个包

>>> python
>>> import rpy2
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试在 jupyter notebook 中导入 rpy2,则会出现错误ModuleNotFoundError: No module named 'rpy2'。如果我运行以下代码

import sys
print(sys.prefix)
Run Code Online (Sandbox Code Playgroud)

我明白了/anaconda3。另外,如果我通过终端做同样的事情:python->import sys -> print(sys.prefix)我得到/anaconda3/envs/work_python36. 如果我which python在终端中运行,我将获得:/anaconda3/envs/work_python36/bin/python. 我尝试PYTHONPATH使用导出进行更改,但没有奏效。如果有人知道如何解决这个问题,请告诉我。

我还打印了以下内容 conda info -a

active environment : work_python36
active env location : /anaconda3/envs/work_python36
        shell level : 1
   user config file : /Users/alex/.condarc
populated config files : 
      conda version : 4.5.12
conda-build version : …
Run Code Online (Sandbox Code Playgroud)

python-import python-3.x jupyter-notebook

0
推荐指数
1
解决办法
2361
查看次数

如何从兄弟目录导入python模块?

我有一个具有以下结构的 python (3.6.3) 项目

setup.py
utils #python package
utils/constants.py
utils/name_reports.py
normalization #python package
normalization/resolve_name.py
categorization #python package
categorization/animal_categories.py
Run Code Online (Sandbox Code Playgroud)

您可以在 github 上找到源代码 - https://github.com/techmango-org/python-import-resolution

这是源代码 utils/name_reports.py

import normalization.resolve_name as rn
import categorization.animal_categories as ac

test_name = 'DOGY'
resolved_name = rn.get_animal_name(test_name)

print('********ANIMAL CATEGORY IS:', ac.get_animal_score(resolved_name))
Run Code Online (Sandbox Code Playgroud)

当我运行时,python utils/name_reports.py我收到以下异常

Traceback (most recent call last):
  File "utils/name_reports.py", line 1, in <module>
    import normalization.resolve_name as rn
ModuleNotFoundError: No module named 'normalization'
Run Code Online (Sandbox Code Playgroud)

我试图通过运行将当前包安装到虚拟环境站点包中来解决这个问题,pip install .但这意味着对于每个本地更改,我必须运行pip install --upgrade .以将我的本地更改移动到站点包中。

我一直在使用黑客-m unittest …

python module resolution python-import

0
推荐指数
1
解决办法
6677
查看次数

Python:尝试从导入的包中导入模块时出现“ ModuleNotFoundError”

我在macOS Mojave 10.14.1版上使用Python 3.7.1

这是我的目录结构:

man/                          
  Mans/                  
          man1.py
  MansTest/
          SoftLib/
                  Soft/
                      SoftWork/
                              manModules.py
          Unittests/
                    man1test.py
Run Code Online (Sandbox Code Playgroud)

man1.py包含以下导入语句,我不想更改它

from Soft.SoftWork.manModules import *
Run Code Online (Sandbox Code Playgroud)

man1test.py包含以下导入语句:

from ...MansTest.SoftLib import Soft
from ...Mans import man1
Run Code Online (Sandbox Code Playgroud)

我需要第二次导入man1test.py因为man1test.py需要访问中的函数man1.py

我首次导入(Soft)的理由是为了促进前面提到的导入声明man1.py

但是,与我的预期相反,其中的import语句man1.py导致:

ModuleNotFoundError: No module named 'Soft'
Run Code Online (Sandbox Code Playgroud)

当我跑步时

python3 -m man.MansTest.Unittests.man1test
Run Code Online (Sandbox Code Playgroud)

man /上方的目录中。

有什么方法可以解决此错误,而无需更改import语句,man1.py 无需在sys.path中添加任何内容?

编辑: …

python python-import python-3.x

0
推荐指数
2
解决办法
8102
查看次数