标签: import

我们应该使用 pandas.compat.StringIO 还是 Python 2/3 StringIO?

StringIO 是我们在从文本中读取Pandas数据帧时使用的类似文件的字符串缓冲区对象,例如“如何从字符串创建 Pandas数据帧?”

我们应该将这两个导入中的哪一个用于 StringIO(在熊猫中)?这是一个长期存在的问题,四年来从未得到解决。

  1. StringIO.StringIO(Python 2)/ io.StringIO(Python 3)
    • 优点:对于面向未来的代码更稳定,但迫使我们进行版本分叉,例如参见 EmilH 底部的代码。
  2. pandas.compat.StringIO

用于从标准(来自 EmilH)导入的版本 2/3 分叉代码:

import sys
if sys.version_info[0] < 3: 
    from StringIO import StringIO
else:
    from io import StringIO …
Run Code Online (Sandbox Code Playgroud)

import backwards-compatibility stringio python-2to3 pandas

5
推荐指数
2
解决办法
2222
查看次数

Google Colab:重新加载导入的模块

我在名为函数的文件夹中有一个文件 readfunctions.py(在这个文件夹中还有一个“ init .py”文件)。在文件 readfunctions.py 中,我定义了一个名为“read_from_shower”的函数。

./functions
    readfunctions.py
    __init__.py
Run Code Online (Sandbox Code Playgroud)

所以,我在我的 Google Colab 会话中导入了这个(在我克隆存储库后从 GitHub 中):

from functions.readfunctions import read_from_shower
Run Code Online (Sandbox Code Playgroud)

它工作正常。但是,我对我的函数“read_from_shower”做了一些更改,但我可以在 Colab 中重新加载它。

我该怎么做?

import module google-colaboratory

5
推荐指数
2
解决办法
3716
查看次数

Visual Studio Code 中的 .spec.ts 文件看不到路径别名

我遇到了一个问题,我的路径别名(例如- import * as fromUsers from '@store/user/user.reducer';)在 VS Code 中无法识别。(注意 - 编译一切正常)。VS Code 报告“找不到模块‘@store/user/user.reducer’”

我有 a<root>/tsconfig.json和 a <root>/src/tsconfig.spec.json,它们看起来像:

tsconfig.json

{
  "compilerOptions": {
    "allowSyntheticDefaultImports": true,
    "declaration": false,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": ["dom", "es2015"],
    "baseUrl": "./src",
    "paths": {
      "@store/*": ["app/store/*"],
      "@core/*": ["app/core/*"],
      "@components/*": ["app/components/*"],
      "@app/*": ["app/*"],
      "@assets/*": ["assets/*"],
      "@env": ["environments/environment"],
      "@pages/*": ["pages/*"],
      "@theme/*": ["theme/*"]
    },
    "module": "es2015",
    "moduleResolution": "node",
    "sourceMap": true,
    "target": "es5"
  },
  "include": ["src/**/*.ts"],
  "exclude": ["node_modules", "src/**/*.spec.ts", "src/**/__tests__/*.ts"],
  "compileOnSave": false,
  "atom": {
    "rewriteTsconfig": false
  }, …
Run Code Online (Sandbox Code Playgroud)

javascript import typescript visual-studio-code angular

5
推荐指数
0
解决办法
494
查看次数

无法在 Kotlin 上导入 gradle 依赖项的类

我在使用 Gradle 时遇到问题,我的依赖项下载并包含在“外部库”中就好了,但我无法在 IntelliJ IDEA 中导入它的类。

请看以下图片:

外部图书馆

导入错误

这是我的 build.gradle:

buildscript {
ext.kotlin_version = '1.2.50'

repositories {
    mavenCentral()
}
dependencies {
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}

group 'cf.dogo'
version '1.0-SNAPSHOT'

apply plugin: 'java'
apply plugin: 'kotlin'
apply plugin: 'application'
apply plugin: 'maven'

mainClassName = "cf.dogo.core.boot.BootKt"

sourceCompatibility = 1.8

repositories {
    mavenCentral()
    jcenter()
    maven {url 'https://jitpack.io'}
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-reflect"
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    compile 'net.dv8tion:JDA:3.6.0_376'
    compile 'org.mongodb:mongodb-driver:3.6.3'
    compile 'com.github.NathanPB:DogoAPI:master-SNAPSHOT' //That one is the problematic dependency
}

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin …
Run Code Online (Sandbox Code Playgroud)

import dependencies intellij-idea gradle kotlin

5
推荐指数
0
解决办法
840
查看次数

从 Python 中的子文件夹导入

这就是情况。我正在使用 Python 3.6

我目前有下一个文件夹组织:

/MainProject
  __init__.py
    /Folder1
      pyscript1.py
      pyscript2.py
      __init__.py
    /Folder2
      pyscript3.py
      __init__.py
Run Code Online (Sandbox Code Playgroud)

所以,我试图从 pyscript3 获取一个存在于 pyscript1.py 中的函数。我还在每个级别添加了一个init .py。在 pyscript3.py 中,我尝试了以下操作:

from . import Folder1
Run Code Online (Sandbox Code Playgroud)

给出错误:

ImportError: cannot import name 'Folder1'
Run Code Online (Sandbox Code Playgroud)

我也试过:

from .Utils import script1
Run Code Online (Sandbox Code Playgroud)

给出错误:

ModuleNotFoundError: No module named '__main__.Utils'; '__main__' is not a 
package
Run Code Online (Sandbox Code Playgroud)

我知道我可以通过以下方式使用 sys 和 os 解决它:

sys.path.append(os.path.realpath('../..'))
Run Code Online (Sandbox Code Playgroud)

但我想知道不使用 sys.path 是否可行。

python import

5
推荐指数
1
解决办法
9686
查看次数

同一目录中文件的模块错误未找到 Rust 文件

Rust 无法通过声明找到本地文件。我在 src 中有以下文件结构:

| main.rs
| lib.rs
| test.rs
| prog.rs
| file.rs
Run Code Online (Sandbox Code Playgroud)

在 main.rs 我有

extern crate cratename;
mod prog;

use cratename::file1::File1;
...
prog::function() // This works
...
#[cfg(test)]
mod test;
Run Code Online (Sandbox Code Playgroud)

在 lib.rs 我有

pub mod file1;
Run Code Online (Sandbox Code Playgroud)

在 test.rs 我有

extern crate cratename
use cratename::file1::File1;
mod prog;
#[test]
...
prog::function() // This does not work
...
Run Code Online (Sandbox Code Playgroud)

我不断收到错误

error[E0583]: file not found for module `prog`
Run Code Online (Sandbox Code Playgroud)

我尝试将声明放在 lib.rs 中,但这没有用。我已经尝试了许多其他涉及此声明以及 main.rs 的排列,但都没有奏效。如果有帮助,prog.rs 不包含结构,也不使用 mod 关键字,它只包含公共函数。这让我难住了一段时间。感谢您的帮助。

import module rust

5
推荐指数
0
解决办法
5481
查看次数

如何更直接地引用函数?

列出目录analyse结构如下:

tree analyse
analyse
??? __init__.py
??? vix.py
Run Code Online (Sandbox Code Playgroud)

__init__.py是空白的,vix.py包含一个函数draw_vix

import analyse
analyse.vix.draw_vix()
Run Code Online (Sandbox Code Playgroud)

draw_vix被引用 analyse.vix.,我想用vix而不是引用它,analyse.vix也就是说,vix在命名空间之后添加import analyse
编辑__init__.py

import analyse.vix as vix
from analyse import vix
Run Code Online (Sandbox Code Playgroud)

检查一下:

import analyse
vix.draw_vix()
Run Code Online (Sandbox Code Playgroud)

一条错误信息:

NameError: name 'vix' is not defined
Run Code Online (Sandbox Code Playgroud)

@ hl037_,如果我添加from .vix import vix__init__.py

import analyse
vix.draw_vix()
Run Code Online (Sandbox Code Playgroud)

它带来了其他问题:ImportError: cannot import name 'vix'。我想要的是写点东西__init__.py,或者写点东西vix.py,让它vix.draw_vix()生效。
如何解决?

python import namespaces module

5
推荐指数
2
解决办法
229
查看次数

Python:更改导入文件类型的优先级(.so 之前的 .py)

如果我import A在包含A.py和的目录中执行A.so.so操作,则将导入该文件。我有兴趣更改导入文件类型的顺序,因此它.py优先于.so,尽管只是暂时的,即在代码行ij. 这当然可以通过一些 importlib魔法来实现吗?

目前,我通过将 复制.py到一个单独的目录中来解决这个问题,将这个目录放在前面sys.path然后进行导入,这太糟糕了。

为什么需要?

这些.so文件是文件的 cython 编译版本.py。我正在 cython 之上进行一些自定义代码转换,.py即使.so存在“等效项” ,我也需要导入源代码。

测试设置

下面是一个简单的测试设置。

# A.py
import B
Run Code Online (Sandbox Code Playgroud)
# B.py
import C
print('hello from B')
Run Code Online (Sandbox Code Playgroud)
# C.py
pass
Run Code Online (Sandbox Code Playgroud)

运行python A.py成功会打印出来自 的消息B.py。现在添加B.so(因为.so文件的内容无关紧要,B.so真正成为文本文件就可以了):

# B.so
this is a fake …
Run Code Online (Sandbox Code Playgroud)

python import python-import python-3.x python-importlib

5
推荐指数
1
解决办法
96
查看次数

FileNotFoundError: [Errno 2] 没有这样的文件或目录:'tinycss2\\VERSION'

完整的错误是:

FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\grossj\\AppData\\Local\\Temp\\_MEI143642\\tinycss2\\VERSION'
[21148] Failed to execute script main
Run Code Online (Sandbox Code Playgroud)

完整的错误日志是:

Traceback (most recent call last):
  File "main.py", line 11, in <module>
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "c:\users\grossj\desktop\dxf-to-png-converter-master\dxf2png\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 489, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\svglib\svglib.py", line 42, in <module>
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", …
Run Code Online (Sandbox Code Playgroud)

python import filenotfoundexception pyqt5 tinycss

5
推荐指数
1
解决办法
929
查看次数

mypy如何使用typing.TYPE_CHECKING解决循环导入注解问题?

我有一个包的以下结构:

/prog
-- /ui
---- /menus
------ __init__.py
------ main_menu.py
------ file_menu.py
-- __init__.py
__init__.py
prog.py
Run Code Online (Sandbox Code Playgroud)

这些是我的导入/类语句:

prog.py

from prog.ui.menus import MainMenu
Run Code Online (Sandbox Code Playgroud)

/prog/ui/menus/__init__.py

from prog.ui.menus.file_menu import FileMenu
from prog.ui.menus.main_menu import MainMenu
Run Code Online (Sandbox Code Playgroud)

main_menu.py

import tkinter as tk
from prog.ui.menus import FileMenu

class MainMenu(tk.Menu):
    
    def __init__(self, master: tk.Tk, **kwargs):
        super().__init__(master, **kwargs)
        self.add_cascade(label='File', menu=FileMenu(self, tearoff=False))

    [...]
Run Code Online (Sandbox Code Playgroud)

file_menu.py

import tkinter as tk
from prog.ui.menus import MainMenu

class FileMenu(tk.Menu):

    def __init__(self, master: MainMenu, **kwargs):
        super().__init__(master, **kwargs)
        self.add_command(label='Settings')

    [...]
Run Code Online (Sandbox Code Playgroud)

这将导致序列中的循环导入问题:

prog.py-> …

python import annotations type-hinting mypy

5
推荐指数
1
解决办法
4328
查看次数