使用PyCharm导入在命令行上不起作用

时间:2018-12-06 23:31:59

标签: python-3.x pycharm

我对Python有点陌生,因为我已经习惯了IntelliJ,所以我正在PyCharm中构建一个项目,并且我的文件结构有问题。当我需要在同一子目录(目录Public Function SortLexicoGraphicallyBigIntegerArray(ByRef data As Byte()) As UInteger() Dim OrderedRotations As New List(Of UInteger) Dim index As Integer = 0 Dim data1 As Byte() Dim data2 As Byte() Dim rotation As UInteger = 0 Dim eachRotation As Integer = 0 Dim TryAgain As Boolean = False For rotation = 0 To data.Length - 1 data1 = GetRotation(data, rotation) OrderedRotations.Add(rotation) If OrderedRotations.Count > 1 Then Dim flag As Boolean Do flag = False For eachRotation = OrderedRotations.Count - 1 To 0 Step -1 data1 = GetRotation(data, OrderedRotations(rotation)) If OrderedRotations(eachRotation) = OrderedRotations(rotation) Then Continue For data2 = GetRotation(data, OrderedRotations(eachRotation)) For index = 0 To data.Length - 1 If data1(index) > data2(index) Then Exit For ElseIf data1(index) < data2(index) Then Dim tmpFirst As UInteger = OrderedRotations(rotation) OrderedRotations(rotation) = OrderedRotations(eachRotation) OrderedRotations(eachRotation) = tmpFirst flag = True End If Next Next Loop While flag End If Next Return OrderedRotations.ToArray() End Function )中导入文件时,我必须输入

c,其中from a.b.c import y是项目的主目录a是我所在的子目录。

因此我无法进入b.c目录。如果我想通过命令行运行此文件,则会导致问题,它使用当前目录作为路径,这意味着导入对import y一无所知。我该怎么做才能解决此问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

出于这个答案的目的,我假设yc目录中的Python模块。换句话说,y.py中有一个名为a/b/c的文件。

import y在目录c中的Python模块中工作,如果当前工作目录也是c

在具有Python插件的Intellij IDEA中(大多数时间与PyCharm几乎相同),在您设置为运行脚本的每个运行/调试配置中,当前工作目录都称为“工作目录”。

如果import y位于c上,

PYTHONPATH也将起作用。

使y对import语句可用的另一种方法是将ab目录转换为Python包。这意味着至少在__init__.pya目录中都放置一个空的b文件。

然后可以将a用作项目的根目录,并使用:

from a.b.c import y

如果您不确定Python如何解析导入,则值得阅读The Definitive Guide to Python import Statements