Regarding import statement in pox controller
I am reading the source code of pox controller. There is an import
statement in one module called l3_editing.py
which is modified based l3_learning.py
.
The import statement is:
from pox.lib.recoco import Timer
Because I do not know Timer
, I just along with the source tree to find this struct. But I cannot find this struct Timer, which really make me confused. It should be in pox/lib/recoco.py
, but there is no module named recoco.py
under lib
package.
Items below pox/lib:
Items below pox/lib/recoco
:
python import controller sdn pox
add a comment |
I am reading the source code of pox controller. There is an import
statement in one module called l3_editing.py
which is modified based l3_learning.py
.
The import statement is:
from pox.lib.recoco import Timer
Because I do not know Timer
, I just along with the source tree to find this struct. But I cannot find this struct Timer, which really make me confused. It should be in pox/lib/recoco.py
, but there is no module named recoco.py
under lib
package.
Items below pox/lib:
Items below pox/lib/recoco
:
python import controller sdn pox
Look at the contents of thepox/lib/recoco/__init__.py
file.
– martineau
Nov 15 '18 at 10:11
add a comment |
I am reading the source code of pox controller. There is an import
statement in one module called l3_editing.py
which is modified based l3_learning.py
.
The import statement is:
from pox.lib.recoco import Timer
Because I do not know Timer
, I just along with the source tree to find this struct. But I cannot find this struct Timer, which really make me confused. It should be in pox/lib/recoco.py
, but there is no module named recoco.py
under lib
package.
Items below pox/lib:
Items below pox/lib/recoco
:
python import controller sdn pox
I am reading the source code of pox controller. There is an import
statement in one module called l3_editing.py
which is modified based l3_learning.py
.
The import statement is:
from pox.lib.recoco import Timer
Because I do not know Timer
, I just along with the source tree to find this struct. But I cannot find this struct Timer, which really make me confused. It should be in pox/lib/recoco.py
, but there is no module named recoco.py
under lib
package.
Items below pox/lib:
Items below pox/lib/recoco
:
python import controller sdn pox
python import controller sdn pox
edited Nov 15 '18 at 10:06
martineau
68.5k1090183
68.5k1090183
asked Nov 15 '18 at 9:37
MelvinMelvin
287
287
Look at the contents of thepox/lib/recoco/__init__.py
file.
– martineau
Nov 15 '18 at 10:11
add a comment |
Look at the contents of thepox/lib/recoco/__init__.py
file.
– martineau
Nov 15 '18 at 10:11
Look at the contents of the
pox/lib/recoco/__init__.py
file.– martineau
Nov 15 '18 at 10:11
Look at the contents of the
pox/lib/recoco/__init__.py
file.– martineau
Nov 15 '18 at 10:11
add a comment |
1 Answer
1
active
oldest
votes
The lib
directory is a python package. It contains an __init__.py
file. When you import a package this will cause any __init__.py
file to be executed. So what's in there?
Just one line:
from recoco import *
Great we are getting closer! Lets look in recoco.py
:
...
class Timer (Task):
"""
A simple timer.
...
There you have it!
1
thanks, I did not realize that the init.py will be executed. I thought that just is a tag to present that directory is a package.
– Melvin
Nov 15 '18 at 10:23
sorry, I can not agree with you after I have try a simple demo. You are right on some aspects. But could you explain what have still confused me: the statement "from pox.lib.recoco import Timer", it present that I want to import Timer, and Timer is in /pox/lib/recoco, so recoco must be a module which has a suffix .py and Timer must be in recoco.py. The recoco is the end of from keyword, so it won't be a package, because I have try it by a simple demo. And this truth is understandable, because the origin which we want to import from must be a module in the end or it will not be right.
– Melvin
Nov 15 '18 at 10:45
@Melvin Therecoco
in yourimport
statement is a package not a module. When we importpox.lib.recoco
we are importing the directorypox/lib/recoco
not the filepob/lib/recoco/recoco.py
. Because a file called__init__.py
is present in the package directory, when we import the package then that file is executed. You might enjoy this question stackoverflow.com/questions/7948494/…
– Rob Bricheno
Nov 15 '18 at 11:48
@Melvin I will not accept your edit because the errors that you have in the example you gave me are caused by running under the Python 3 interpreter. Try your example using the Python 2.7 interpreter (whichpox
requires) and you will find it works. This behaviour changed from Python 2 to Python 3.
– Rob Bricheno
Nov 15 '18 at 11:50
thanks, I have retry it under python2.7, and it works fine. But I still think that the changes on import in python3 are more understandable. Thanks for your instruction, I have learn a lot from it, good bless to you.
– Melvin
Nov 15 '18 at 12:01
|
show 1 more comment
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53316379%2fregarding-import-statement-in-pox-controller%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The lib
directory is a python package. It contains an __init__.py
file. When you import a package this will cause any __init__.py
file to be executed. So what's in there?
Just one line:
from recoco import *
Great we are getting closer! Lets look in recoco.py
:
...
class Timer (Task):
"""
A simple timer.
...
There you have it!
1
thanks, I did not realize that the init.py will be executed. I thought that just is a tag to present that directory is a package.
– Melvin
Nov 15 '18 at 10:23
sorry, I can not agree with you after I have try a simple demo. You are right on some aspects. But could you explain what have still confused me: the statement "from pox.lib.recoco import Timer", it present that I want to import Timer, and Timer is in /pox/lib/recoco, so recoco must be a module which has a suffix .py and Timer must be in recoco.py. The recoco is the end of from keyword, so it won't be a package, because I have try it by a simple demo. And this truth is understandable, because the origin which we want to import from must be a module in the end or it will not be right.
– Melvin
Nov 15 '18 at 10:45
@Melvin Therecoco
in yourimport
statement is a package not a module. When we importpox.lib.recoco
we are importing the directorypox/lib/recoco
not the filepob/lib/recoco/recoco.py
. Because a file called__init__.py
is present in the package directory, when we import the package then that file is executed. You might enjoy this question stackoverflow.com/questions/7948494/…
– Rob Bricheno
Nov 15 '18 at 11:48
@Melvin I will not accept your edit because the errors that you have in the example you gave me are caused by running under the Python 3 interpreter. Try your example using the Python 2.7 interpreter (whichpox
requires) and you will find it works. This behaviour changed from Python 2 to Python 3.
– Rob Bricheno
Nov 15 '18 at 11:50
thanks, I have retry it under python2.7, and it works fine. But I still think that the changes on import in python3 are more understandable. Thanks for your instruction, I have learn a lot from it, good bless to you.
– Melvin
Nov 15 '18 at 12:01
|
show 1 more comment
The lib
directory is a python package. It contains an __init__.py
file. When you import a package this will cause any __init__.py
file to be executed. So what's in there?
Just one line:
from recoco import *
Great we are getting closer! Lets look in recoco.py
:
...
class Timer (Task):
"""
A simple timer.
...
There you have it!
1
thanks, I did not realize that the init.py will be executed. I thought that just is a tag to present that directory is a package.
– Melvin
Nov 15 '18 at 10:23
sorry, I can not agree with you after I have try a simple demo. You are right on some aspects. But could you explain what have still confused me: the statement "from pox.lib.recoco import Timer", it present that I want to import Timer, and Timer is in /pox/lib/recoco, so recoco must be a module which has a suffix .py and Timer must be in recoco.py. The recoco is the end of from keyword, so it won't be a package, because I have try it by a simple demo. And this truth is understandable, because the origin which we want to import from must be a module in the end or it will not be right.
– Melvin
Nov 15 '18 at 10:45
@Melvin Therecoco
in yourimport
statement is a package not a module. When we importpox.lib.recoco
we are importing the directorypox/lib/recoco
not the filepob/lib/recoco/recoco.py
. Because a file called__init__.py
is present in the package directory, when we import the package then that file is executed. You might enjoy this question stackoverflow.com/questions/7948494/…
– Rob Bricheno
Nov 15 '18 at 11:48
@Melvin I will not accept your edit because the errors that you have in the example you gave me are caused by running under the Python 3 interpreter. Try your example using the Python 2.7 interpreter (whichpox
requires) and you will find it works. This behaviour changed from Python 2 to Python 3.
– Rob Bricheno
Nov 15 '18 at 11:50
thanks, I have retry it under python2.7, and it works fine. But I still think that the changes on import in python3 are more understandable. Thanks for your instruction, I have learn a lot from it, good bless to you.
– Melvin
Nov 15 '18 at 12:01
|
show 1 more comment
The lib
directory is a python package. It contains an __init__.py
file. When you import a package this will cause any __init__.py
file to be executed. So what's in there?
Just one line:
from recoco import *
Great we are getting closer! Lets look in recoco.py
:
...
class Timer (Task):
"""
A simple timer.
...
There you have it!
The lib
directory is a python package. It contains an __init__.py
file. When you import a package this will cause any __init__.py
file to be executed. So what's in there?
Just one line:
from recoco import *
Great we are getting closer! Lets look in recoco.py
:
...
class Timer (Task):
"""
A simple timer.
...
There you have it!
edited Nov 15 '18 at 11:51
answered Nov 15 '18 at 9:56
Rob BrichenoRob Bricheno
2,375318
2,375318
1
thanks, I did not realize that the init.py will be executed. I thought that just is a tag to present that directory is a package.
– Melvin
Nov 15 '18 at 10:23
sorry, I can not agree with you after I have try a simple demo. You are right on some aspects. But could you explain what have still confused me: the statement "from pox.lib.recoco import Timer", it present that I want to import Timer, and Timer is in /pox/lib/recoco, so recoco must be a module which has a suffix .py and Timer must be in recoco.py. The recoco is the end of from keyword, so it won't be a package, because I have try it by a simple demo. And this truth is understandable, because the origin which we want to import from must be a module in the end or it will not be right.
– Melvin
Nov 15 '18 at 10:45
@Melvin Therecoco
in yourimport
statement is a package not a module. When we importpox.lib.recoco
we are importing the directorypox/lib/recoco
not the filepob/lib/recoco/recoco.py
. Because a file called__init__.py
is present in the package directory, when we import the package then that file is executed. You might enjoy this question stackoverflow.com/questions/7948494/…
– Rob Bricheno
Nov 15 '18 at 11:48
@Melvin I will not accept your edit because the errors that you have in the example you gave me are caused by running under the Python 3 interpreter. Try your example using the Python 2.7 interpreter (whichpox
requires) and you will find it works. This behaviour changed from Python 2 to Python 3.
– Rob Bricheno
Nov 15 '18 at 11:50
thanks, I have retry it under python2.7, and it works fine. But I still think that the changes on import in python3 are more understandable. Thanks for your instruction, I have learn a lot from it, good bless to you.
– Melvin
Nov 15 '18 at 12:01
|
show 1 more comment
1
thanks, I did not realize that the init.py will be executed. I thought that just is a tag to present that directory is a package.
– Melvin
Nov 15 '18 at 10:23
sorry, I can not agree with you after I have try a simple demo. You are right on some aspects. But could you explain what have still confused me: the statement "from pox.lib.recoco import Timer", it present that I want to import Timer, and Timer is in /pox/lib/recoco, so recoco must be a module which has a suffix .py and Timer must be in recoco.py. The recoco is the end of from keyword, so it won't be a package, because I have try it by a simple demo. And this truth is understandable, because the origin which we want to import from must be a module in the end or it will not be right.
– Melvin
Nov 15 '18 at 10:45
@Melvin Therecoco
in yourimport
statement is a package not a module. When we importpox.lib.recoco
we are importing the directorypox/lib/recoco
not the filepob/lib/recoco/recoco.py
. Because a file called__init__.py
is present in the package directory, when we import the package then that file is executed. You might enjoy this question stackoverflow.com/questions/7948494/…
– Rob Bricheno
Nov 15 '18 at 11:48
@Melvin I will not accept your edit because the errors that you have in the example you gave me are caused by running under the Python 3 interpreter. Try your example using the Python 2.7 interpreter (whichpox
requires) and you will find it works. This behaviour changed from Python 2 to Python 3.
– Rob Bricheno
Nov 15 '18 at 11:50
thanks, I have retry it under python2.7, and it works fine. But I still think that the changes on import in python3 are more understandable. Thanks for your instruction, I have learn a lot from it, good bless to you.
– Melvin
Nov 15 '18 at 12:01
1
1
thanks, I did not realize that the init.py will be executed. I thought that just is a tag to present that directory is a package.
– Melvin
Nov 15 '18 at 10:23
thanks, I did not realize that the init.py will be executed. I thought that just is a tag to present that directory is a package.
– Melvin
Nov 15 '18 at 10:23
sorry, I can not agree with you after I have try a simple demo. You are right on some aspects. But could you explain what have still confused me: the statement "from pox.lib.recoco import Timer", it present that I want to import Timer, and Timer is in /pox/lib/recoco, so recoco must be a module which has a suffix .py and Timer must be in recoco.py. The recoco is the end of from keyword, so it won't be a package, because I have try it by a simple demo. And this truth is understandable, because the origin which we want to import from must be a module in the end or it will not be right.
– Melvin
Nov 15 '18 at 10:45
sorry, I can not agree with you after I have try a simple demo. You are right on some aspects. But could you explain what have still confused me: the statement "from pox.lib.recoco import Timer", it present that I want to import Timer, and Timer is in /pox/lib/recoco, so recoco must be a module which has a suffix .py and Timer must be in recoco.py. The recoco is the end of from keyword, so it won't be a package, because I have try it by a simple demo. And this truth is understandable, because the origin which we want to import from must be a module in the end or it will not be right.
– Melvin
Nov 15 '18 at 10:45
@Melvin The
recoco
in your import
statement is a package not a module. When we import pox.lib.recoco
we are importing the directory pox/lib/recoco
not the file pob/lib/recoco/recoco.py
. Because a file called __init__.py
is present in the package directory, when we import the package then that file is executed. You might enjoy this question stackoverflow.com/questions/7948494/…– Rob Bricheno
Nov 15 '18 at 11:48
@Melvin The
recoco
in your import
statement is a package not a module. When we import pox.lib.recoco
we are importing the directory pox/lib/recoco
not the file pob/lib/recoco/recoco.py
. Because a file called __init__.py
is present in the package directory, when we import the package then that file is executed. You might enjoy this question stackoverflow.com/questions/7948494/…– Rob Bricheno
Nov 15 '18 at 11:48
@Melvin I will not accept your edit because the errors that you have in the example you gave me are caused by running under the Python 3 interpreter. Try your example using the Python 2.7 interpreter (which
pox
requires) and you will find it works. This behaviour changed from Python 2 to Python 3.– Rob Bricheno
Nov 15 '18 at 11:50
@Melvin I will not accept your edit because the errors that you have in the example you gave me are caused by running under the Python 3 interpreter. Try your example using the Python 2.7 interpreter (which
pox
requires) and you will find it works. This behaviour changed from Python 2 to Python 3.– Rob Bricheno
Nov 15 '18 at 11:50
thanks, I have retry it under python2.7, and it works fine. But I still think that the changes on import in python3 are more understandable. Thanks for your instruction, I have learn a lot from it, good bless to you.
– Melvin
Nov 15 '18 at 12:01
thanks, I have retry it under python2.7, and it works fine. But I still think that the changes on import in python3 are more understandable. Thanks for your instruction, I have learn a lot from it, good bless to you.
– Melvin
Nov 15 '18 at 12:01
|
show 1 more comment
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53316379%2fregarding-import-statement-in-pox-controller%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Look at the contents of the
pox/lib/recoco/__init__.py
file.– martineau
Nov 15 '18 at 10:11