В Java все переменные, которые вы объявляете, на самом деле являются «ссылками» на объекты (или примитивы), а не самими объектами.
При попытке выполнить один метод объекта , ссылка просит живой объект выполнить этот метод. Но если ссылка ссылается на NULL (ничего, нуль, void, nada), то нет способа, которым метод будет выполнен. Тогда runtime сообщит вам об этом, выбросив исключение NullPointerException.
Ваша ссылка «указывает» на нуль, таким образом, «Null -> Pointer».
Объект живет в памяти виртуальной машины пространство и единственный способ доступа к нему - использовать ссылки this
. Возьмем этот пример:
public class Some {
private int id;
public int getId(){
return this.id;
}
public setId( int newId ) {
this.id = newId;
}
}
И в другом месте вашего кода:
Some reference = new Some(); // Point to a new object of type Some()
Some otherReference = null; // Initiallly this points to NULL
reference.setId( 1 ); // Execute setId method, now private var id is 1
System.out.println( reference.getId() ); // Prints 1 to the console
otherReference = reference // Now they both point to the only object.
reference = null; // "reference" now point to null.
// But "otherReference" still point to the "real" object so this print 1 too...
System.out.println( otherReference.getId() );
// Guess what will happen
System.out.println( reference.getId() ); // :S Throws NullPointerException because "reference" is pointing to NULL remember...
Это важно знать - когда больше нет ссылок на объект (в пример выше, когда reference
и otherReference
оба указывают на null), тогда объект «недоступен». Мы не можем работать с ним, поэтому этот объект готов к сбору мусора, и в какой-то момент VM освободит память, используемую этим объектом, и выделит другую.
У меня были проблемы с установкой пакетов в Windows. Нашел решение. Он работает в Windows7 +. В основном все, что с Windows Powershell должно быть в состоянии заставить его работать. Этот может помочь вам начать с него.
python setup.py install
Это сработало для меня, когда ничто иное не имело смысла. Я использую Python 2.7, но документация предполагает, что то же самое будет работать и для Python 3.x.
Начиная с Python 2.7, по умолчанию включается pip. Просто загрузите нужный пакет через
python -m pip install [package-name]
m **module-name**: Searches **sys.path** for the named module and runs the corresponding **.py** file as a script.
.
– Blauhirn
16 June 2018 в 11:52
Новые версии Python для Windows поставляются с диспетчером пакетов pip . (источник)
pip уже установлен, если вы используете Python 2> = 2.7.9 или Python 3> = 3.4
Используйте это для установки пакетов:
cd C:\Python\Scripts\ pip.exe install <package-name>
Так что в вашем случае это будет:
pip.exe install mechanize
pip
находится как C:\Users\[you]\AppData\Local\Programs\Python\Python[XX]\Scripts\pip
– J P
9 June 2016 в 09:30
Вы также можете просто загрузить и запустить ez_setup.py, хотя документация SetupTools больше не предлагает этого. Работала отлично для меня еще 2 недели назад.
PS D:\simcut> C:\Python27\Scripts\pip.exe install networkx
Collecting networkx
c:\python27\lib\site-packages\pip\_vendor\requests\packages\urllib3\util\ssl_.py:318: SNIMissingWarning: An HTTPS reques
t has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may caus
e the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer ve
rsion of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#snimissi
ngwarning.
SNIMissingWarning
c:\python27\lib\site-packages\pip\_vendor\requests\packages\urllib3\util\ssl_.py:122: InsecurePlatformWarning: A true SS
LContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL con
nections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.
readthedocs.io/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
Downloading networkx-1.11-py2.py3-none-any.whl (1.3MB)
100% |################################| 1.3MB 664kB/s
Collecting decorator>=3.4.0 (from networkx)
Downloading decorator-4.0.11-py2.py3-none-any.whl
Installing collected packages: decorator, networkx
Successfully installed decorator-4.0.11 networkx-1.11
c:\python27\lib\site-packages\pip\_vendor\requests\packages\urllib3\util\ssl_.py:122: InsecurePlatformWarning: A true SSLContext object i
s not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade
to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#insecureplat
formwarning.
InsecurePlatformWarning
Или просто поместите каталог в исполняемый файл вашего пула на вашем системном пути.
Вам не нужен исполняемый файл для setuptools. Вы можете загрузить исходный код, распаковать его, перейти в загруженный каталог и запустить python setup.py install
в командной строке
setup.py
). Оттуда вы можете запустить python setup.py install
, и он установит его для вас.
– Evan Fosmark
19 September 2009 в 22:27
Это - хороший учебник о том, как получить easy_install
в окнах. Короткий ответ: добавьте C:\Python26\Scripts
(или какой-либо питон, который вы установили) к вашему PATH.
Как упоминалось Blauhirn после того, как 2.7 пип предустановлен. Если он не работает для вас, его, возможно, нужно добавить в путь.
Однако, если вы запустите Windows 10, вам больше не нужно открывать терминал для установки модуля. То же самое касается и открытия Python.
Вы можете ввести непосредственно в меню поиска pip install mechanize
, выбрать команду и установить:
Если что-то пойдет не так, однако может быть закрыто, прежде чем вы сможете прочитать ошибку, но все же это полезный ярлык.