title: no module named StringIO
body: <p>I have python 3.6. I want to execute python file named 'operation.py' from another python file named 'run.py'.</p>
  
  <p>In <code>operation.py</code> I do <code>from cStringIO import StringIO</code>. PyCharm shows me a warning that there is no module named StringIO. I know that since python3 I have to import StringIO module from io. However, when I use this importation, the functions of this module are no longer work. </p>
  
  <p>Although there is a warning in <code>from cStringIO import StringIO</code>, the code still works (I know this import really works because I tried to make it a comment and it couldn't run). The problem is that when I try to run this file by the 'run.py' file, it can't run and prints the following message: <code>ModuleNotFoundError: No module named 'cStringIO'</code>.</p>
  
  <p>I tried to use this <a href="https://stackoverflow.com/questions/21236824/unresolved-reference-issue-in-pycharm">Unresolved reference issue in PyCharm</a> but it didn't help.</p>
  
  <p>Why does 'operation.py' run though the warning, but 'run.py' does not? How can I solve this? </p>
  
  <p>operation.py:</p>
  
  <pre><code>    from cStringIO import StringIO
  
  
      str_io = StringIO()
      g = Generator(str_io, False)
      # There is a full code here...
  </code></pre>
  
  <p>run.py:</p>
  
  <pre><code>    import operation
  
  
      def main():
          operation
  </code></pre>
  
  <p>The <code>operation.py</code> has a warning but runs well, run.py has a fail. </p>