可能重复:
Python包结构
您好,我正在寻找一个在我的主文件根目录下的子目录中导入的python文件.例如
import ../library/utils.py
Run Code Online (Sandbox Code Playgroud)
当我把它放入我的代码并运行它时,我得到一个编译错误.
有没有办法从主文件根目录下面包含文件,还是必须在根目录下的子目录中?
谢谢你的帮助.
当Python想要导入模块时,它首先要查看sys.modules.但由于字典的键值对不是固定的顺序,你怎么能确定sys.modules先导入哪两个同名的模块呢?
如果我
from file import variable
Run Code Online (Sandbox Code Playgroud)
并且varable在模块文件中更改,variables值不会更新.如果我
import file
Run Code Online (Sandbox Code Playgroud)
变速器file.variable已更新.
有没有办法从模块中有选择地导入变量,将它们放在模块本地范围内并反映更新.
当我建立:
import matplotlib
pyplot.plot([1,2,3,4])
pyplot.ylabel('some numbers')
pyplot.show()
Run Code Online (Sandbox Code Playgroud)
我明白了:
Traceback (most recent call last):
File "/Users/Paulair/Desktop/mathGraphing.py", line 2, in <module>
pyplot.plot([1,2,3,4])
NameError: name 'pyplot' is not defined
[Finished in 0.2s with exit code 1]
Run Code Online (Sandbox Code Playgroud)
当我建立:
import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.ylabel('some numbers')
plt.show()
Run Code Online (Sandbox Code Playgroud)
有用.
所以我正在用Python编写一个小程序.这不是非常苛刻,而且是为了好玩,所以不一定需要针对速度或资源或其中任何一个进行优化而且我远非专业人士,所以如果这是一个荒谬的问题抱歉,但我很好奇:
我定义的几个小功能(如5号线),将需要的库导入(urllib,xml.etree,等).是否有理由在函数之外执行它们,比如在代码的开头,而不是作为函数的第一行?我认为在函数中使用它会使将来更容易有效地窃取这些函数,但我也认为这有点慢.这里有任何硬性规定或经验法则吗?如果没有,有没有人有任何意见?
我想使用datetime模块utcfromtimestamp方法但它在Ninja-IDE中不起作用.我怎么能解决我的问题?
我的代码:
#-*- coding: utf-8 -*-
import datetime
print (datetime.datetime.utcfromtimestamp(130130301))
Run Code Online (Sandbox Code Playgroud)
Ninja-IDE 2.3写入此错误消息:
File "C:\Users\test\Desktop\datetime.py", line 3, in <module>
print (datetime.datetime.utcfromtimestamp(130130301))
AttributeError: 'module' object has no attribute 'utcfromtimestamp'
Run Code Online (Sandbox Code Playgroud)
我安装了Python 3.4并在首选项中设置了路径.
我正在创建一个具有以下目录结构的python项目:
demos
demo1.py
kernels
rbf.py
___init__.py
Run Code Online (Sandbox Code Playgroud)
该文件rbf.py定义了一个名为的类RBF.将__init__.py在文件kernels目录中包含以下行:
from .rbf import *
Run Code Online (Sandbox Code Playgroud)
现在demo1.py包含以下导入:
from kernels import RBF
Run Code Online (Sandbox Code Playgroud)
然而,这失败了
ImportError: No module named kernels
Run Code Online (Sandbox Code Playgroud)
因此该demos文件夹看不到kernels包目录.我不知道如何做到这一点.
我的项目中有4个文件:
project/__init__.py
project/app.py
project/mod_x.py
project/mod_y.py
Run Code Online (Sandbox Code Playgroud)
在mod_x.py我有一个类(例如ModX)在mod_y.py我只有一个函数.
我从app.py导入模块如下:
from .mod_x import ModX
import .mod_y
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
ImportError:没有名为'mod_y'的模块
在我创建init .py 之前,我没有遇到过那种问题(当然,我没有在模块名称之前加上".").
如何在当前目录中使用init .py文件导入Python3中没有类的模块?
import pandas as pd
data = pd.read_csv(some_data)
Run Code Online (Sandbox Code Playgroud)
我在此代码的第二行中添加了一个断点,Visual Studio代码在此断点处停止。但是,当我尝试进入“ read_csv”函数时,vscode显然执行了“跳过”。我还尝试在“ read_csv”函数中设置断点,但结果相同。
那么,如何进入提到的功能呢?
我正在对PyTorch源代码进行一些研究。作者实际上在该文件中删除了模块。
from .adadelta import Adadelta # noqa: F401
from .adagrad import Adagrad # noqa: F401
from .adam import Adam # noqa: F401
del adadelta
del adagrad
del adam
Run Code Online (Sandbox Code Playgroud)
这样做的理由是什么?