Python 2.7 PyCharm和Windows 10命令行中的PYTHONPATH

Python 2.7 PyCharm和Windows 10命令行中的PYTHONPATH,python-2.7,environment-variables,pycharm,Python 2.7,Environment Variables,Pycharm,我已经在Pycharm中创建了一个项目,我可以成功地运行它以及它的单元测试。但是,当我尝试从tests文件夹所在位置的命令行运行pytest时,我得到一个错误,测试表明它在给定模块(测试中)中找不到对象。我知道Pycharm在启动任何东西之前会运行某些命令,并通过PYTHONPATH导出信息以使其测试工作正常,但是如果没有Pycharm,我怎么做同样的事情呢 下面显示了我的项目结构: PycharmProjects\ ProjectFolder\ - setup.py

我已经在Pycharm中创建了一个项目,我可以成功地运行它以及它的单元测试。但是,当我尝试从tests文件夹所在位置的命令行运行pytest时,我得到一个错误,测试表明它在给定模块(测试中)中找不到对象。我知道Pycharm在启动任何东西之前会运行某些命令,并通过PYTHONPATH导出信息以使其测试工作正常,但是如果没有Pycharm,我怎么做同样的事情呢

下面显示了我的项目结构:

PycharmProjects\
     ProjectFolder\
         - setup.py
         - readme.txt
         module\
             - __init__.py
             - module.py
         tests\
             - __init__.py
             - test_module.py
在Pycharm运行我的代码之前,它会在脚本启动时执行以下操作(我从设置>控制台>Python控制台获得)。我不知道如何分辨工作路径和PYTHON路径中的内容

import sys; print('Python %s on %s' % (sys.version, sys.platform))
sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS])
但是,当我在项目文件夹中从命令行运行时,会出现以下类型的错误。什么给

D:\user\development\PycharmProjects\ProjectFolder> pytest
============================= test session starts =============================
platform win32 -- Python 2.7.11, pytest-3.1.3, py-1.4.34, pluggy-0.4.0
rootdir: D:\user\PycharmProjects\ProjectFolder, inifile:
collected 4 items

tests\test_module.py .F.F

================================== FAILURES ===================================
_______________________ TestModule.test_ONE ________________________

self = <tests.test_module.TestModule testMethod=test_ONE>

    def test_ONE(self):
>       someObject = module.SomeObject("someObject.log")
E       AttributeError: 'module' object has no attribute 'SomeObject'

tests\test_module.py:23: AttributeError
________________________ TestModule.test_TWO _________________________

self = <tests.test_module.TestModule testMethod=test_TWO>

    def test_TWO(self):
>       someObject = module.SomeObject("someObject.log")
E       AttributeError: 'module' object has no attribute 'SomeObject'

tests\test_module.py:8: AttributeError
===================== 2 failed, 2 passed in 0.14 seconds ======================
D:\user\development\PycharmProjects\ProjectFolder>pytest
===========================================测试会话开始=============================
平台win32——Python 2.7.11、pytest-3.1.3、py-1.4.34、pluggy-0.4.0
rootdir:D:\user\PycharmProjects\ProjectFolder,文件:
收集4项
测试\测试模块.py.F.F
===================================================故障===================================
_______________________TestModule.test_ONE________________________
自我=
def测试一(自身):
>someObject=module.someObject(“someObject.log”)
E AttributeError:“模块”对象没有属性“SomeObject”
tests\test_module.py:23:AttributeError
________________________TestModule.test_二_________________________
自我=
def测试二(自身):
>someObject=module.someObject(“someObject.log”)
E AttributeError:“模块”对象没有属性“SomeObject”
tests\test_module.py:8:AttributeError
============================2失败,2在0.14秒内通过======================

您需要将PYTHONPATH环境变量设置为包含源程序包/模块的目录。因此,如果您的包位于
C:\my\u stuff\foo\my\u package
,您将希望PYTHONPATH位于
C:\my\u stuff\foo
。您还需要确保在包含源代码的所有目录中都有
\uuuu init\uuuu.py
文件

您可能还需要将python区域添加到
PATH
env变量中。如果python.exe文件位于
C:\Python27\python.exe
,则希望
C:\Python27
位于任何其他python目录之前的
PATH

要设置环境变量

  • 单击开始按钮

  • 单击文件资源管理器

  • 右键单击“这台电脑”->属性

  • 单击高级系统设置

  • 单击环境变量…

  • 在“nndhawan的用户变量”下,查找变量
    PYTHONPATH
    。如果存在,请单击编辑…。如果不存在,请单击新建…

  • 变量名:PYTHONPATH

  • 变量值:C:\my\u stuff\foo
    请注意,如果有多个路径,它们将用分号分隔,不带空格。保存多个文件后,界面看起来会略有不同,但仍然非常直观。使用
    Edit
    New
    您期望的方式


  • 我尝试过这个方法,但没有解决我的问题。我会更好地更新我的票证。您的
    PYTHONPATH=D:\user\PycharmProjects\ProjectFolder
    ?对于
    模块
    ,您的
    导入
    语句在
    tests\test\u module.py
    中是什么样子的?在这种情况下,它需要是来自模块导入模块的
    ,而
    SomeObject
    将是
    D:\user\PycharmProjects\ProjectFolder\module\module.py中的
    PYTHONPATH=D:\user\PycharmProjects\ProjectFolder
    2)。在
    tests\test_module.py
    内部,导入显示
    import module
    ;3). 我尝试了模块导入模块中的
    ,但PyCharm中出现了以下错误(但命令行现在可以工作)---
    模块导入模块中的导入错误:无法导入名称模块
    为什么这两个错误(PyCharm和命令行)在设置方面互相争斗??我猜您的项目结构在PyCharm中没有正确设置,无法与您试图在命令行上执行的操作兼容。如果您制作了
    PYTHONPATH=D:\user\PycharmProjects\ProjectFolder;D:\user\PycharmProjects\ProjectFolder\module
    和您的导入语句
    import module
    我打赌这两种方法都可以,但这不是正确的方法。尝试将项目内容根目录
    设置|项目|项目结构
    更改为
    D:\user\PycharmProjects\ProjectFolder
    。如果这不起作用,我可能需要在PyCharm中看到您的prj结构的图像